【发布时间】:2020-08-28 09:30:55
【问题描述】:
我的第一篇文章! 我在 jupyter 笔记本上运行 python 3.8.5 和 pandas 1.1.0。
我想将几列除以同一数据框另一列中的相应元素。 例如:
import pandas as pd
df = pd.DataFrame({'a': [2, 3, 4], 'b': [4, 6, 8], 'c':[6, 9, 12]})
df
a b c
0 2 4 6
1 3 6 9
2 4 8 12
我想将“b”和“c”列除以“a”中的相应值,并将“b”和“c”中的值替换为除法的结果。于是上面的dataframe就变成了:
a b c
0 2 2 3
1 3 2 3
2 4 2 3
我试过了
df.iloc[: , 1:] = df.iloc[: , 1:] / df['a']
但这给出了:
a b c
0 2 NaN NaN
1 3 NaN NaN
2 4 NaN NaN
我通过以下方式让它工作:
for colname in df.columns[1:]:
df[colname] = (df[colname] / df['a'])
有没有更快的方法通过避免 for 循环来完成上述操作?
谢谢, 马克
【问题讨论】:
标签: python pandas dataframe jupyter