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'])

有没有办法将每个数字除以该列中其他数字的总和?第一个数字 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/

相关文章:

python - 将行插入到 Pandas DataFrame 中,同时保持列数据类型

python - 取行中不带标签的数值,正则表达式

python - as_strided : Linking stepsize (strides of conv2d) with as_strided strides parameter

python - 从 flask 蓝图中的主应用程序导入

python - Spyder 在 Windows 10 上打开时会消耗大量带宽

python - 如何使用 Pandas 获取两个时间序列之间的相关性

python - 使用 re 从 .pgn (字符串行)构建数据框

python - 如何将 Python 3.x 捆绑到使用 ReactJs 的 Electron 应用程序?

Python:包导入错误

python - 将许多 json 字符串与 python pandas 输入合并