假设我有一个矩阵:
import pandas as pd
pd.DataFrame([[1, 2, 3], [3, 4, 5], [6, 7, 8]], columns=['A', 'B', 'C'], index=['X', 'Y', 'Z'])
有没有办法将每个数字除以该列中其他数字的总和?第一个数字 1,在 A、X 处将是 1/(3+6) = 0.1111。
最佳答案
你可以这样做
>>> df / (df.sum() - df)
A B C
X 0.111111 0.181818 0.230769
Y 0.428571 0.444444 0.454545
Z 1.500000 1.166667 1.000000
之所以有效,是因为 df.sum()
为我们提供了列总和:
>>> df.sum()
A 10
B 13
C 16
dtype: int64
当我们减去df
时,总和会广播,因此每个元素都成为适当的分母:
>>> df.sum() - df
A B C
X 9 11 13
Y 7 9 11
Z 4 6 8
关于python - 在 Pandas 中,有没有办法将一个单元格除以一列中的所有其他单元格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36815888/