python - Python Pandas 创建 USD_Converted 列
问题描述
我有两个数据框,交易
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_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
我想在交易中创建一个列来转换交易 ['Currency'] != 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
但它不工作。
解决方案
您可以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
推荐阅读
- grafana - 如何设置图形的线条在 Grafana 中平行出现
- r - 根据具有多个条件的文件名将字符串分配给对象
- javascript - 无法迭代从 firebase 中提取的用户数组
- google-cloud-platform - 如何在bigquery中获取过期表数据,如果过期时间超过两天?
- java - 数据库触发器在集成测试中不起作用
- cython - 将c函数作为参数传递给cython中的python函数
- r - 使用 r (data.table/dplyr) 中的列表列
- react-native - App.js 文件中的导航器问题——React Native
- javascript - PercentPipe 随机添加十进制数
- excel - 将Json导出到xlsx时有什么方法可以设置背景颜色