我有以下df
,
currency value
USD 1.0
EUR 2.0
RMB 3.0
我得到一个包含汇率的dict
,
rates = {'GBP': 0.76, 'USD': 1.0, 'CNY': 6.6}
当我这样做
df['value'].div(df['currency'].map(rates))
我怎么知道/获取currency
中的哪个值未映射到rates
,就像我尝试过的KeyError
try:
df['amount'] = df.['value'].div(df['currency'].map(rates))
except KeyError as e:
print('Key {} does not exist in the exchange rates dictionary'.format(e.args[0]))
,但未引发任何错误。我想知道如何做到这一点。
答案 0 :(得分:1)
您的代码正常工作,并且如果dict中没有键,则在NaN
列中获得value
。
因此需要currency
之后的所有NaN
和map
:
a = df['value'].div(df['currency'].map(rates))
b = df.loc[a.isnull(), 'currency']
print (b)
1 EUR
2 RMB
Name: currency, dtype: object