Python:如何将货币对视为按相反顺序形成的货币对?

2024-06-24 12:45:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我想按货币对分组行,但遇到了一些问题。根据输入,对于前两行,USD GBP和GBP USD实际上指的是同一货币对,但货币顺序相反。我如何将它们视为相同的货币,并将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

Tags: 顺序货币eurusdvrgbpqualifierkrw
1条回答
网友
1楼 · 发布于 2024-06-24 12:45:33

您可以尝试在对以下货币进行sirting之后制作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

更新: 要更改FirstCurrencyLastCurrency使用。或者您可以创建一个新列

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]

相关问题 更多 >