python - Pandas 中的列操作

标签 python pandas

假设我有一个数据框:

import numpy as np
import pandas as pd

df = pd.DataFrame(np.random.rand(4,5), columns = list('abcde'))

我想从所有其他列中减去 df.a 列中的条目。换句话说,我想获得一个包含以下列的列的数据框:

|col_b - col_a | col_c - col_a | col_d - col_a|

我试过 df - df.a 但这会产生一些奇怪的东西:

  0   1   2   3   a   b   c   d   e
0 NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 NaN NaN NaN NaN NaN NaN NaN NaN NaN

如何在 Pandas 中执行这种类型的按列操作?另外,只是想知道 df -df.a 有什么作用?

最佳答案

你可能想要

>>> df.sub(df.a, axis=0)
   a         b         c         d         e
0  0  0.112285  0.267105  0.365407 -0.159907
1  0  0.380421  0.119536  0.356203  0.096637
2  0 -0.100310 -0.180927  0.112677  0.260202
3  0  0.653642  0.566408  0.086720  0.256536

df-df.a 基本上是尝试沿另一个轴进行减法,因此索引不匹配,并且在使用像减法这样的二元运算符时“不匹配的索引将联合在一起” (正如文档所说)。由于索引不匹配,您最终得到 0 1 2 3 a b c d e

例如,您可以通过调换事物更间接地到达同一目的地, (df.T - df.a).T,通过翻转 df 意味着默认轴现在是正确的。

关于python - Pandas 中的列操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14949455/

相关文章:

python - 如何使用 TensorFlow 的 sketch RNN 教程对 QuickDraw 涂鸦进行分类?

python - 如何在 Matplotlib 中的 x 轴上分配相等的比例?

python - 我们可以安装带有 enthought canopy 的 pygame 包吗?

pandas - 当要分割的字符串数量不确定时,在分隔符上分割 Dataframe 列

python - 获取值错误 : Shape of passed values is (14, 78692),索引暗示 (14, 78250)

python - TensorFlow:在不同输出形状的数据集之间交替

python - 导入错误 : No module named modelsinspector

python - Seaborn FacetGrid - 在最后一个子图之后放置单个颜色条

python - 使用 2 个不同的列删除其他数据框中存在的行

python - 迭代读取 Pandas DataFrame 的 (tsv) 文件