python - Python中与if条件相关的公式
问题描述
例如,我有一个数据集,如下所示:
| A | B | C |
| - | - | - |
| 2 | 6 | 10 |
| 3 | 7 | 15 |
| 1 | 4 | 24 |
| 6 | 2 | 20 |
所以我需要找到每个C的条件列之间的相关性(如果C> 15,如果C> 20等),并找到最大的C相关性?
有没有办法用一些公式和 if 语句来做到这一点?因为有超过 5000 行,我不知道如何快速完成......
在此先感谢您对初学者的帮助:)
解决方案
查看相关公式,您需要 2 个和:(x-ux)(y-uy) 和 (x-ux)²(y-uy)²。如果您被允许使用所有行的平均值(即使您正在计算行子集的相关性),那么您可以对行进行排序并逐个遍历它们,添加到总和并重新计算相关性随着你的前进。
伪代码:
rows.sort_by("C")
means = calc_means(rows)
diff_sum = 0
square_diff_sum = 0
max_correlation = 0
max_C = 0
for row in rows:
diff_sum += (row["A"]-means["A"])*(row["C"]-means["C"])
square_diff_sum += (row["A"]-means["A"])^2 * (row["C"]-means["C"])^2
correlation = diff_sum/sqrt(square_diff_sum)
if correlation > max_correlation:
max_correlation = correlation
max_C = row["C"]
print(max_correlation, max_C)
如果您不允许使用“全局”均值,那么您可以一次性计算所有均值(C<10 的均值、C<15 的均值等),但我认为您可能需要每个平均值的另一个完整通道以找到相关性。尽管可能有一种聪明的方法可以一次性完成。
推荐阅读
- dataweave - Dataweave 2.0 with MaxSize 功能
- python - Pandas 中的数据框拆分问题,有什么想法吗?
- java - Java HashSet 最坏情况查找时间复杂度
- python - python请求发出429错误请求
- c - CS50 恢复 - 我如何使用 sprintf?错误:使用未声明的标识符“文件名”;您指的是 'rename' 吗?
- html - 如何在此设置中换行后使嵌套的 css flex 具有正确的宽度?
- reactjs - 打字稿中的 useState 和 React.FC 问题
- android - 安装新的 react-native 项目时找不到 swiperefreshlayout-1.0.0.aar 错误
- python - 如何在 Telegram 机器人的命令中停止循环
- json - 如何从 JSON 文件加载 React-Table 中的图像