[英]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.