слияние панд и групповая конкат - PullRequest
0 голосов
/ 13 декабря 2018

Я хочу сделать что-то вроде GROUP BY / GROUP_CONCAT в MySQL, используя панд.Допустим, у меня есть:

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

I 'Я использовал pd.merge , но я не могу найти способ выполнить объединение и избежать дубликатов.

Ответы [ 2 ]

0 голосов
/ 13 декабря 2018

Или используя 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
0 голосов
/ 13 декабря 2018

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...