簡體   English   中英

我可以減去兩個軸上具有不同索引的兩個 pandas 數據幀嗎?

[英]Can I subtract two pandas dataframes with different indexes in both axes?

我正在嘗試減去兩個數據幀,但它們可能並不總是在軸上具有相同的索引

df1

   A B C D E
ZA 1 2 4 0 1
ZB 1 5 1 3 1
ZC 1 5 0 1 0

和df2

   A B C D
ZA 4 6 5 0
ZB 5 1 5 9
ZD 0 9 5 3

這樣我的結果應該是

df2.sub(df1)

   A  B  C  D  E
ZA  3  4  1  0  -1
ZB  4 -4  4  6  -1
ZC -1 -5  0 -1  0
ZD  0  9  5  3  0

df.sub() function 並沒有給我我想要的東西。

有人指出,我可以將索引分成相交的和不相交的。 但是如果兩個軸可以不同呢? 例如產品與客戶。 如果我比較兩個日期范圍,那么在此期間可能會有不同的客戶和產品。

您可以使用subfillnafill_value選項:

df2.sub(df1, fill_value=0).fillna(0, downcast='infer')

output:

    A  B  C  D  E
ZA  3  4  1  0 -1
ZB  4 -4  4  6 -1
ZC -1 -5  0 -1  0
ZD  0  9  5  3  0

在減去DataFrame.align之前使用DataFrame.sub

df2, df1 = df2.align(df1, fill_value=0)
df = df2.sub(df1)
print (df)
    A  B  C  D  E
ZA  3  4  1  0 -1
ZB  4 -4  4  6 -1
ZC -1 -5  0 -1  0
ZD  0  9  5  3  0

暫無
暫無

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

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