在Pandas,我正在尝试手动编码卡方检验。我在下面的数据框中将row 0
与row 1
进行了比较。
data
2 3 5 10 30
0 3 0 6 5 0
1 33324 15833 58305 54402 38920
为此,我需要计算每个细胞的预期细胞计数:cell(i,j) = rowSum(i)*colSum(j) / sumAll
。在R中,我可以通过采用outer()
产品来实现这一点:
Exp_counts <- outer(rowSums(data), colSums(data), "*")/sum(data) # Expected cell counts
我使用numpy的外部产品功能来模仿上述R代码的结果:
import numpy as np
pd.DataFrame(np.outer(data.sum(axis=1),data.sum(axis=0))/ (data.sum().sum()), index=data.index, columns=data.columns.values)
2 3 5 10 30
0 2 1 4 3 2
1 33324 15831 58306 54403 38917
是否可以通过Pandas功能实现这一目标?