Python 合并两个数据帧,根据列X重复项相加列Y
我有两个数据帧(df1/df2),每个数据帧有两个值列(X/Y)。两个数据帧应合并成一个新的数据帧(df3)。但是,我希望在列X中添加重复项。因此,如果X的值在两个数据帧中都匹配(例如,df1中的“B”和df2中的“B”),我希望Y的值(在df3中)相加(例如,“2”+“4”=“6”)。df3:“B”=“6” 结果是:Python 合并两个数据帧,根据列X重复项相加列Y,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我有两个数据帧(df1/df2),每个数据帧有两个值列(X/Y)。两个数据帧应合并成一个新的数据帧(df3)。但是,我希望在列X中添加重复项。因此,如果X的值在两个数据帧中都匹配(例如,df1中的“B”和df2中的“B”),我希望Y的值(在df3中)相加(例如,“2”+“4”=“6”)。df3:“B”=“6” 结果是: X Y 0 AB 5 1 BC 7 2 CD 9 然而,我希望实现以下目标: X Y 0 A 1 1 B 6
X Y
0 AB 5
1 BC 7
2 CD 9
然而,我希望实现以下目标:
X Y
0 A 1
1 B 6
2 C 8
3 D 6
有什么建议吗?
提前谢谢 您正在查找
pd.concat()
请确保指定轴=0,因为这表示应在行上而不是列上进行连接。
请注意,axis=0
表示行,axis=1
表示列
df3 = pd.concat([df1,df2],axis=0, ignore_index=True)
其中打印:
X Y
0 D 1
1 B 2
2 C 3
3 D 4
4 E 5
5 F 6
X Y
0 D 1
1 B 2
2 C 3
4 E 5
5 F 6
编辑
鉴于您最近的评论,当X被复制时,下面总结Y的内容如何:
df3['Y_new'] = df3.groupby('X')['Y'].transform('sum')
df3.drop_duplicates('X',inplace=True)
其中打印:
X Y
0 D 1
1 B 2
2 C 3
3 D 4
4 E 5
5 F 6
X Y
0 D 1
1 B 2
2 C 3
4 E 5
5 F 6
添加
ignore\u index=True
以获取唯一索引+1注意,完成,谢谢你的提示!我尝试了.concat(),但是,我想在列X中添加重复项。因此,如果X的值在两个数据帧中都匹配(例如,df1中的“B”和df2中的“B”),我希望Y的值(在df3中)相加(例如,“2”+“4”=“6”)。df3:“B”=“6”立即检查更新的asnwer。我想这就是你需要的..转换('sum')帮了我的忙。非常感谢。