Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 合并两个数据帧,根据列X重复项相加列Y_Python_Python 3.x_Pandas_Dataframe - Fatal编程技术网

Python 合并两个数据帧,根据列X重复项相加列Y

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

我有两个数据帧(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
 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')帮了我的忙。非常感谢。