用列将两个df分组,并合并所有行值

时间:2018-10-23 12:46:15

标签: python python-3.x python-2.7 pandas pandas-groupby

基于col1值与col2值串联在一起合并两个df。

我的df1:

col1  col2      

Arm   'a'
Arm   'b'
Abc   'c' 
Abc   'd'  
Xzc   'e'

我的df2:

col1     col2 

Abc    '1'
Arm    '2'
Abc    '3'
ers    '4'

事情是像这样合并dfs

merged_c1   merged_c2 
Arm         'a 2'
Arm         'b 2'
Abc         'c 1'
Abc         'c 3'
Abc         'd 1'
Abc         'd 3'

1 个答案:

答案 0 :(得分:1)

merge与带有pop的连接列一起用于提取列:

df = df1.merge(df2, on='col1')

#if not necessary remove trailing '
#df['col2'] = df.pop('col2_x') + ' ' + df.pop('col2_y')

df['col2'] = df.pop('col2_x').str.strip("'") + ' ' + df.pop('col2_y').str.strip("'")
print (df)
  col1 col2
0  Arm  a 2
1  Arm  b 2
2  Abc  c 1
3  Abc  c 3
4  Abc  d 1
5  Abc  d 3