【发布时间】:2021-06-01 09:04:49
【问题描述】:
我正在尝试编写列表推导以将 pandas 数据框中的货币转换为所有美元。我正在使用 forex_python.converter 来获取汇率。
数据如下:
| Amount | Currency | Amount_USD |
|---|---|---|
| 20 | usd | |
| 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)
但目前该代码将汇率应用于美元价值。
【问题讨论】:
-
你为什么要
currency2 = print('"{0}"'.format(currency))? -
可能有更好的方法,但对于 c.get_rate() 语句,它需要货币在引号中('usd')。如果不使用格式化程序,货币仅以美元计,没有引号
-
这与
print有什么关系?你意识到了,currency2 == None,对吗? -
我简化了解决方案代码 - rate=1 for USD now
标签: python pandas dataframe list-comprehension currency