python - Python:如何将货币对与以相反顺序形成的货币对相同?
问题描述
我想按货币对对行进行分组,但遇到了一些问题。从输入来看,对于前两行,USDGBP 和 GBPUSD 实际上指的是同一个货币对,但货币的顺序是相反的。如何将它们视为相同并按相同货币对对 VR 列求和?非常感谢!
输入可以在下面找到:
Qualifier FirstCurrency SecondCurrency VR
0 USDGBP USD GBP 50000
1 GBPUSD GBP USD 60000
2 BRLUSD BRL USD 90000
3 EURQAR EUR QAR 30000
4 HKDKRW HKD KRW -10000
5 CNYSGD CNY SGD 20000
6 RUBTRY RUB TRY -14570
7 KRWBRL KRW BRL 28650
解决方案
您可以尝试tuple
在发送货币后进行
df['grpupable'] = df['Qualifier'].apply(lambda x: tuple(sorted([x[:3], x[3:]])))
示例:现在您可以将它们分组为
df.groupby(['grpupable'])['VR'].sum()
grpupable
(BRL, KRW) 28650
(BRL, USD) 90000
(CNY, SGD) 20000
(EUR, QAR) 30000
(GBP, USD) 110000
(HKD, KRW) -10000
(RUB, TRY) -14570
更新:
更改FirstCurrency
和LastCurrency
使用。或者您可以创建一个新列
df['FirstCurrency'] = df['grpupable'].str[0]
df['SecondCurrency'] = df['grpupable'].str[1]
# or
# df['CurrencyA'] = df['grpupable'].str[0]
# df['CurrencyB'] = df['grpupable'].str[1]
推荐阅读
- python - 如何在一分钟时间序列python中提取中间时间戳?
- node.js - 刷新 Heroku 页面只显示 API 信息,不显示页面内容
- php - 传递给 Illuminate\Cookie\Middleware\EncryptCookies::encrypt() 的参数 1 必须是 Symfony\Component\HttpFoundation\Response 的实例
- reporting-services - 从 VS 2019 部署报告后,SSRS 2016 以目录浏览器模式出现
- java - 颤振谷歌地图致命例外:androidmapsapi-ZoomTableManager
- python - 无法理解输出背后的原因
- perl - 为 Raku 构建多个后端失败
- mysql - Ubuntu 20.04 设置mysql phpmyadmin root 密码
- angular - 错误:预期的间谍导航已被调用:[ [ '/client/register' ] ] 但它从未被调用
- java - Lambdas 中的局部变量与匿名内部类