Python 在熊猫身上,有没有一种方法可以将一个细胞除以一列中的所有其他细胞?
假设我有一个矩阵:Python 在熊猫身上,有没有一种方法可以将一个细胞除以一列中的所有其他细胞?,python,pandas,Python,Pandas,假设我有一个矩阵: import pandas as pd pd.DataFrame([[1, 2, 3], [3, 4, 5], [6, 7, 8]], columns=['A', 'B', 'C'], index=['X', 'Y', 'Z']) 有没有办法将每个数字除以其列中其他数字的总和?在A,X处的第一个数字1是1/(3+6)=0.1111 你可以这样做 >>> df / (df.sum() - df) A B C
import pandas as pd
pd.DataFrame([[1, 2, 3], [3, 4, 5], [6, 7, 8]], columns=['A', 'B', 'C'], index=['X', 'Y', 'Z'])
有没有办法将每个数字除以其列中其他数字的总和?在A,X处的第一个数字1是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