问题描述
我正在尝试编写列表理解以将 Pandas 数据框中的货币转换为所有美元。我正在使用 forex_python.converter 来获取汇率。
数据如下:
金额 | 货币 | Amount_USD |
---|---|---|
20 | 美元 | |
45 | cad | |
17 | gbp |
我想编写一个循环来应用特定日期的汇率以将每一行转换为美元,但如果该行是美元,则 Amount_USD 应等于 Amount
到目前为止我已经尝试过:
for currency in currencies:
if currency == 'usd':
data['Amount_USD'] == data['Amount']
else:
date_obj=datetime.datetime(2020,8,1)
currency2 = print('"{0}"'.format(currency))
rate = c.get_rate(currency2,'USD',date_obj)
data['Amount_USD'] = np.where(data['Currency']== currency2,data['Amount']*rate,np.nan)
但目前代码正在将汇率应用于美元价值。
解决方法
我建议重写:
for currency in currencies:
if currency != 'usd':
date_obj=datetime.datetime(2020,8,1)
currency2 = print('"{0}"'.format(currency))
rate = c.get_rate(currency2,'USD',date_obj)
else:
rate = 1
data.loc[data.currency == currency,'Amount_USD'] = data['Amount'] * rate