熊猫合并并组合concat



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

表_a

col_a col_b
A     1
B     2
C     2

表_b

col_a col_c
A     VALUE_1
A     VALUE_2
B     VALUE_3
C     VALUE_4

我想要一个新的表_c如下:

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

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

或者在merge之后使用agg

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

groupby先于merge,确保'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

最新更新