列表理解货币转换通过声明

List comprehension currency conversion pass statement

我正在尝试编写列表理解以将 pandas 数据框中的货币转换为所有美元。我正在使用 forex_python.converter 来获取汇率。

数据如下:

Amount Currency Amount_USD
20 usd
45 cad
17 gbp

我想写一个循环来应用特定日期的汇率将每一行转换为美元,但如果该行是美元,那么 Amount_USD 应该等于金额

到目前为止我已经尝试过:

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