簡體   English   中英

如何在 pandas 中減去兩個相同的數據幀

[英]How to subtract two identical dataframes in pandas

我在 pandas/python(a 和 b)中有兩個相同的數據框,只有值不同:

A:

date       a1 a2 a3
01.01.2020 2  2  2
02.01.2020 3  3  3
03.01.2020 4  4  4

乙:

date       a1 a2 a3
01.01.2020 1  1  1
01.01.2020 2  2  2
01.01.2020 3  3  3

我需要 a - b 並希望看到結果 c:

date       a1 a2 a3
01.01.2020 1  1  1
01.01.2020 1  1  1
01.01.2020 1  1  1

a - b 不起作用,我不知道怎么做。 你能幫幫我嗎? 謝謝!

您可以set_index

new_df = (a.set_index('date') - b.set_index('date')).reset_index()

但是,只有當您的日期在兩個數據框之間相同並且每個數據框內不同時,這才有效。

在另一種情況下(如您的示例數據所示),您可以執行以下操作:

c = b.copy()
c.iloc[:,1:] = a.iloc[:, 1:] - b.iloc[:,1:]

嘗試使用df1.subtract(df2) 簡單而優雅。

假設兩個數據框中的日期相同,您可以使用df.sub

df = a.set_index('date').sub(b.set_index('date')).reset_index()

Output:

         date  a1  a2  a3
0  01.01.2020   1   1   1
1  01.01.2020   1   1   1
2  01.01.2020   1   1   1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM