熊猫合并并合并concat

时间:2018-12-13 16:15:13

标签: python pandas

我想使用pandas在MySQL中执行GROUP BY / GROUP_CONCAT之类的操作。假设我有:

table_a

col_a col_b
A     1
B     2
C     2

table_b

col_a col_c
A     VALUE_1
A     VALUE_2
B     VALUE_3
C     VALUE_4

我想要一个新的table_c,如下所示:

col_a col_b col_c
A     1      VALUE_1, VALUE_2
B     2      VALUE_3
C     2      VALUE_4

我一直在使用 pd.merge ,但是我找不到一种方法来进行串联并避免重复。

2 个答案:

答案 0 :(得分:4)

groupbymerge之前,确保'col_a'在正确的框架中是唯一的:

df1.merge(df2.groupby('col_a').col_c.apply(', '.join).reset_index())

  col_a  col_b             col_c
0     A      1  VALUE_1, VALUE_2
1     B      2           VALUE_3
2     C      2           VALUE_4

答案 1 :(得分:4)

或者在agg之后使用merge

df1.merge(df2).groupby('col_a',as_index=False).agg({'col_b':'first','col_c':','.join})
Out[46]: 
  col_a  col_b            col_c
0     A      1  VALUE_1,VALUE_2
1     B      2          VALUE_3
2     C      2          VALUE_4