Python 基于数据帧中的相似列在数据帧中添加列
我试图得到一个输出,我希望在d1和d2中添加列Python 基于数据帧中的相似列在数据帧中添加列,python,pandas,Python,Pandas,我试图得到一个输出,我希望在d1和d2中添加列d,其中a b c相同(比如groupby) 比如说 d1 = pd.DataFrame([[1,2,3,4]],columns=['a','b','c','d']) d2 = pd.DataFrame([[1,2,3,4],[2,3,4,5]],columns=['a','b','c','d']) 然后我想得到一个输出,作为 a b c d 0 1 2 3 8 1 2 3 4 5 合并两个数据帧并添加结果列d,其中
d
,其中a b c相同(比如groupby)
比如说
d1 = pd.DataFrame([[1,2,3,4]],columns=['a','b','c','d'])
d2 = pd.DataFrame([[1,2,3,4],[2,3,4,5]],columns=['a','b','c','d'])
然后我想得到一个输出,作为
a b c d
0 1 2 3 8
1 2 3 4 5
合并两个数据帧并添加结果列d
,其中a b c相同
d1.add(d2)
或radd
提供所有列的聚合
解决方案应该是一个数据帧,可以再次添加到另一个数据帧
非常感谢您的帮助。您可以先使用:
我希望它被添加到一个递归循环中。列名有点不对劲。a b c显示为内柱,形状显示为(2,1)。因此,如果我将结果添加到第三个数据帧中,它将无法找到键a b c。我猜我没有执行重置索引。我的错。
print (d2.set_index(['a','b','c'])
.add(d1.set_index(['a','b','c']), fill_value=0)
.astype(int)
.reset_index())
a b c d
0 1 2 3 8
1 2 3 4 5
df = pd.concat([d1, d2])
df.drop_duplicates()
a b c d
0 1 2 3 4
1 2 3 4 5