python从两个数据帧聚合列
我有两个数据帧:python从两个数据帧聚合列,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我有两个数据帧: df1 A B C D Index 1 0 1 1 3 2 1 0 3 1 3 4 0 1 1 4 0 2 2 2 df2 A B Index 1 1 2 2 3 4 3 0 0 4 1 2 我希望我的输出是 df_结果 A B C D Index 1 1 3 1 3 2 4 4
df1
A B C D
Index
1 0 1 1 3
2 1 0 3 1
3 4 0 1 1
4 0 2 2 2
df2
A B
Index
1 1 2
2 3 4
3 0 0
4 1 2
我希望我的输出是
df_结果
A B C D
Index
1 1 3 1 3
2 4 4 3 1
3 4 0 1 1
4 1 4 2 2
基本上,我希望聚合相似的列值,并将不相似的列包含到结果中。请注意,df1
和df2
将始终具有相同的索引
如何在python的pandas库中执行此操作?按列使用+并聚合sum
:
df = pd.concat([df1, df2], axis=1).groupby(level=0, axis=1).sum()
print (df)
A B C D
Index
1 1 3 1 3
2 4 4 3 1
3 4 0 1 1
4 1 4 2 2
按列使用+并聚合
sum
:
df = pd.concat([df1, df2], axis=1).groupby(level=0, axis=1).sum()
print (df)
A B C D
Index
1 1 3 1 3
2 4 4 3 1
3 4 0 1 1
4 1 4 2 2
您可以使用
add
和fill\u value
In [4336]: df1.add(df2, fill_value=0)
Out[4336]:
A B C D
Index
1 1 3 1.0 3.0
2 4 4 3.0 1.0
3 4 0 1.0 1.0
4 1 4 2.0 2.0
或者,使用
reindex
In [4341]: df1 + df2.reindex(columns=df1.columns, fill_value=0)
Out[4341]:
A B C D
Index
1 1 3 1 3
2 4 4 3 1
3 4 0 1 1
4 1 4 2 2
您可以使用
add
和fill\u value
In [4336]: df1.add(df2, fill_value=0)
Out[4336]:
A B C D
Index
1 1 3 1.0 3.0
2 4 4 3.0 1.0
3 4 0 1.0 1.0
4 1 4 2.0 2.0
或者,使用
reindex
In [4341]: df1 + df2.reindex(columns=df1.columns, fill_value=0)
Out[4341]:
A B C D
Index
1 1 3 1 3
2 4 4 3 1
3 4 0 1 1
4 1 4 2 2
这真是太快了,我有一种感觉,你在问题发布之前就开始键入答案;-)就连我都觉得萨米人几分钟前吃过晚饭,所以也许这对我有帮助;)天哪,谢谢你。我想今天是我的幸运日:D.在4分钟内接受答案。那真是太快了。我有一种感觉,你开始在问题发布之前键入答案;-)就连我都觉得萨米人几分钟前吃过晚饭,所以也许这对我有帮助;)天哪,谢谢你。我想今天是我的幸运日:D.在4分钟内接受答案。