【发布时间】:2021-06-11 13:26:33
【问题描述】:
我有一个数据框:
import pandas as pd
df1 = pd.DataFrame({"Line":['Sales', 'Volume', 'ANR', 'EBT'], "a":[10, 4, 64, 32],
"b":[4, 8, 32, 48],
"c":[16, 4, 8, 24]})
我想将每一行除以一个不同的常数。所以我想将“Sales”除以 10,“Volume”除以 1,“ANR”除以 100,“EBT”除以 1。我可以执行以下操作:
df2 = pd.DataFrame({"A":[10, 1, 100, 1]})
df3 = df1.iloc[:, 1:].div(df2.A, axis=0)
这让我得到了这个特定示例的正确答案。但我希望操作更智能。我希望它在 Line 列中查找值。如果是“销售额”,则除以 10 等。
原因是我正在使用的数据框有 1000 行。我不想创建和维护像 df2 这样的系列。
对于上面的例子,答案应该是这样的:
df3 = pd.DataFrame({"Line":['Sales', 'Volume', 'ANR', 'EBT'], "a":[1, 4, 0.64, 32],
"b":[0.4, 8, 0.32, 48],
"c":[1.6, 4, 0.8, 24]})
【问题讨论】:
标签: pandas dataframe conditional-statements