簡體   English   中英

合並和求和兩個匹配python pandas的數據幀

[英]merge and sum two dataframes where columns match python pandas

我可能正在接近這是錯誤的方式。 如果我有兩個數據幀a和b:

數據幀A:

a b c
1 2 4
1 6 5
1 8 7

和Dataframe B:

a b c d
1 2 4 9
1 6 5 7
1 8 7 10

我想加入它們,但是暫時將列名匹配的列加起來,並保留不匹配的列名。 所以最終的連接表看起來像:

a   b   c   d
2   4   8   9
2   12  10  7
2   16  14  10

注意:索引始終匹配(即相同順序的記錄數相同)

你可以把add在較大的DF傳入其他DF和呼叫fillna

In [18]:
df1.add(df).fillna(df1)

Out[18]:
   a   b   c   d
0  2   4   8   9
1  2  12  10   7
2  2  16  14  10

另一種方法是使用combine_first

In [20]:
df1.add(df).combine_first(df1)

Out[20]:
   a   b   c   d
0  2   4   8   9
1  2  12  10   7
2  2  16  14  10

您可以對齊數據框,將NAN填充為零並執行簡單的添加。

d = pd.DataFrame(data, columns=['a','b','c'])
d2 = pd.DataFrame(data2, columns=['a','b','c','d'])
d, d2 = d.align(d2, fill_value=0)
sum_df = d + d2

In [23]: d
Out[23]: 
   a  b  c  d
0  1  2  4  0
1  1  6  5  0
2  1  8  7  0

In [24]: d2
Out[24]: 
   a  b  c   d
0  1  2  4   9
1  1  6  5   7
2  1  8  7  10

In [25]:sum_df
Out[25]: 
   a   b   c   d
0  2   4   8   9
1  2  12  10   7
2  2  16  14  10

暫無
暫無

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

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