首页 > 解决方案 > 如何根据条件字典重新计算 DataFrame 列值(Pandas Python)

问题描述

假设我有以下数据框:

一种
0 4.32
1 7.00
2 bb 8.00
3 dd 74.00
4 抄送 30.00
5 bb 2.00

假设我有以下 dict,它在其键中确定列 A 的条件,并在其值中确定列 B 的乘数:

dict1={'aa':-1, 'bb':2}

我想要的只是将 B 列中的值与 dict1 中的 vulues 相乘,条件是 A 列中的值与 dict1 键相匹配。

所以输出应该是:

一种
0 -4.32
1 -7.00
2 bb 16.00
3 dd 74.00
4 抄送 30.00
5 bb 4.00

谢谢

标签: python-3.xpandasdataframe

解决方案


使用pd.Series.map

print (df["A"].map(dict1).fillna(1)*df["B"])

0    -4.32
1    -7.00
2    16.00
3    74.00
4    30.00
5     4.00
dtype: float64

推荐阅读