我有两个数据框,一个显示支票帐户的交易,另一个显示信用卡上的交易。这两个列表之间的唯一区别是,前者将交易分为“借方”交易和“贷方”交易,而后者仅具有信贷使用情况,负数表示现金返还,而非负数表示卡上的正常购买。如果您愿意,我想“加入”这两个,同时将负数的交易追加到第一个列表的贷方,将非负数的交易追加到借方。除了这两列之外,还有一个“ 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
答案 0 :(得分:0)
在我看来,您不想像在SQL连接中那样连接,而是合并两个数据帧。为此,请注意您的借方或贷方之一为零。您可以考虑一下:
# 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']]])