Серии панд определяют, какой ключ (и) не существует в - PullRequest
0 голосов
/ 27 июня 2018

У меня есть следующие 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 голосов
/ 27 июня 2018

Ваш код работает, и если нет ключа в dict, получите NaN s в столбце 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...