Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在熊猫身上,有没有一种方法可以将一个细胞除以一列中的所有其他细胞?_Python_Pandas - Fatal编程技术网

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