熊猫系列确定字典中不存在哪些键

时间:2018-06-27 13:34:11

标签: python-3.x pandas dataframe

我有以下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]))

,但未引发任何错误。我想知道如何做到这一点。

1 个答案:

答案 0 :(得分:1)

您的代码正常工作,并且如果dict中没有键,则在NaN列中获得value

因此需要currency之后的所有NaNmap

a = df['value'].div(df['currency'].map(rates))

b = df.loc[a.isnull(), 'currency']
print (b)
1    EUR
2    RMB
Name: currency, dtype: object