使用不同的列名连接Pandas中的两个数据帧

2024-06-16 14:10:50 发布

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

我有两个数据框,一个显示支票账户的交易,另一个显示信用卡上的交易。这两个列表之间的唯一区别是前者将交易分为“借记”和“贷记”交易,而后者仅具有贷记用途,负数表示现金返还,非负数表示卡上的正常购买。如果您愿意的话,我想“加入”这两项,同时将负数的交易添加到第一个列表的贷方,将非负数的交易添加到借方。除了这两列之外,还有一个“TransactionID”列,它对两个列表都有相同的用途。以下是一些列表:

df0:

                                         TransactionID    Debit   Credit
0    HCCLAIMPMT BCBS TEXAS TRN*1*C20120E10592180*13...     0.00    21.29
1                    BANKCARD BTOT DEP 543052900022658     0.00   124.93
2                                          Check #1867  8755.50     0.00

df1:

    Amount                    TransactionID
0    -3.41    YOUR CASH BACK THIS PERIOD IS
1    29.22              PAYPAL ON EBAY MARK
2    30.45                     REDTAGFABRIC

我如何加入他们

编辑-预期输出:

                                      TransactionID       Debit   Credit
0    HCCLAIMPMT BCBS TEXAS TRN*1*C20120E10592180*13...     0.00    21.29
1                    BANKCARD BTOT DEP 543052900022658     0.00   124.93
2                                          Check #1867  8755.50     0.00
0                        YOUR CASH BACK THIS PERIOD IS     0.00     3.41
1                                  PAYPAL ON EBAY MARK    29.22     0.00      
2                                         REDTAGFABRIC    30.45     0.00      

Tags: 列表交易用途debitcredittexas负数贷记
1条回答
网友
1楼 · 发布于 2024-06-16 14:10:50

在我看来,您不想像在SQL join中那样连接,而是连接两个数据帧。为此,请注意您的一个借方或贷方为零。你可以这样考虑:

# assume df2 is the List2 dataframe, add "debit" and "credit" columns
df2['Debit'] = df2['Amount'].clip(0)
df2['Credit'] = (-df2['Amont']).clip(0)

# combine them
combined = pd.concat([df1, df2[['TransactionID', 'Debit', 'Credit']]])

相关问题 更多 >