python - 将多列除以 Pandas 中的另一列

标签 python pandas

我需要将 DataFrame 中除第一列之外的所有列除以第一列。

这就是我正在做的事情,但我想知道这是否不是“正确”的 Pandas 方式:

df = pd.DataFrame(np.random.rand(10,3), columns=list('ABC'))

df[['B', 'C']] = (df.T.iloc[1:] / df.T.iloc[0]).T

有没有办法做类似 df[['B','C']]/df['A'] 的事情? (这只是给出了一个 10x12 的 nan 数据帧。)

另外,在阅读了一些关于 SO 的类似问题后,我尝试了 df['A'].div(df[['B', 'C']]) 但这给出了广播错误.

最佳答案

我相信 df[['B','C']].div(df.A, axis=0)df.iloc[:,1:].div (df.A, axis=0) 工作。

关于python - 将多列除以 Pandas 中的另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34540567/

相关文章:

python - 减少复杂 pandas 重新索引任务的内存使用

python - Pandas 中的 block 自举采样

java - Python - 无法使用 htmlunitdriver 创建与 Selenium 独立服务器的 session

python - Django 1.11 - 如何查询上限为 None 的 DateTimeRangeField (PostgreSQL)

python - 可以使用编译功能输出来检测源代码中的更改

python - 无法访问通过更改函数内部的 locals() 创建的变量

python - 指定图例框的线宽,matplotlib中

python - 用单个列表 pandas 填充 DataFrame 的每一行

Python - 处理后将 block 列表放入数据帧中

python - Pandas :链式作业