我有一个这样的数据框:
[in]: data[['currency','value']].sample(10).to_clipboard
[out]
index currency value
PIRC.MI EUR 4.944000e+09
DHIL USD 5.088264e+08
BBZA.DE EUR 3.969099e+09
MUR USD 2.572464e+09
CTEC USD NaN
VEA USD NaN
KIE USD NaN
GLO USD 4.115056e+08
ET USD 2.145219e+10
FTV USD 2.445958e+10
和一个字典,包含各种货币的汇率(我需要比较它们)
conversions= {'HKD': 0.13,
'EUR': 1.21,
'GBP': 1.39,
'USD': 1.0
}
我需要将所有货币行的值乘以字典中相应的汇率。
例如:所有 'EUR' 货币行按 dict 中相应的 'EUR' 汇率,对于出现在数据框中的所有货币都是相同的。
我虽然使用 for 遍历 dict 中的所有项目,但我确信 Pandas 支持一种更好、更简单的方法。
答案 0 :(得分:2)
df["result"] = df.currency.map(conversions) * df.value
如果你看df.currency.map(conversions)
,它是
0 1.21
1 1.00
2 1.21
3 1.00
4 1.00
5 1.00
6 1.00
7 1.00
8 1.00
9 1.00
即它有乘数。然后我们将其乘以 df.value
列。
答案 1 :(得分:2)
data['rate'] = data['currency'].map(conversions)
data['value'] = data['rate'] * data['value']
答案 2 :(得分:2)
您可以使用:
data['currency'].map(conversions).mul(data['value'])