Python Pandas Создать колонку USD_Converted - PullRequest
0 голосов
/ 09 ноября 2018

У меня есть два фрейма данных, сделки

Currency     Deal_Amount
0   USD           18.40
1   USD           18.40
2   USD           5559.00
3   USD           14300.00
4   USD           1000.00
5   EUR           3072.00
6   USD           500.00
7   CAD           100000.00
8   USD           250.00
15  EUR           6000.00

и currency_rates

currency_code   year quarter    from_usd_rate   to_usd_rate
AED             2018    3           3.67285      0.27226813
ARS             2018    3            17.585      0.056866648
AUD             2018    3            1.27186     0.786250059
BRL             2018    3            3.1932      0.313165477
CAD             2018    3            1.2368      0.808538163
EUR             2018    3            0.852406    1.173149884
GBP             2018    3            0.747077    1.338550109
GHS             2018    3            4.4         0.227272727

Я хочу создать столбец в сделках, который конвертирует сделки, где сделки ['Валюта']! = USDи примените currency_rate ['to_usd_rate'] к сделкам ['Deal_Amount'], чтобы получить сумму в долларах США.

Пока я пробовал

def convert_amount(data):
  if data['Currency']==currency_rates['currency_code']:
  Converted_amount=data['Deal_Amount'] * currency_rates['to_usd_rate']
  return Converted_amount

, но это не работает.

1 Ответ

0 голосов
/ 09 ноября 2018

Вы можете merge и fillna с 1, чтобы использовать в качестве нового курса

A = df1.merge(df2, left_on='Currency', right_on='currency_code', how='left').fillna(1)
df1['converted'] = A['Deal_Amount']*A['to_usd_rate']

выход

    index Currency  Deal_Amount     converted
0      0      USD         18.4     18.400000
1      1      USD         18.4     18.400000
2      2      USD       5559.0   5559.000000
3      3      USD      14300.0  14300.000000
4      4      USD       1000.0   1000.000000
5      5      EUR       3072.0   3603.916444
6      6      USD        500.0    500.000000
7      7      CAD     100000.0  80853.816300
8      8      USD        250.0    250.000000
9     15      EUR       6000.0   7038.899304
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...