按列中所有元素分组,以熊猫为单位

时间:2019-12-05 10:52:24

标签: pandas dataframe group-by

我有数据框:

elements1    |    elements2
   a                 dog
   b                 dog
   a                 cat
   x                 cat
   c                 cat
   m                 pig
   k                 pig
...

,我想获取以下格式的数据框:

elements1    |    elements2
   a, b              dog
   a, x, c           cat
   m, k              pig
...

实际上,我们将elements2分组,然后用逗号将相应的elements1除以。此数据框中的所有项目都是字符串。

1 个答案:

答案 0 :(得分:2)

我们可以使用groupbyapplylambda,其中所有匹配的元素都用逗号连接。

df1 = df.groupby('elements2')['elements1'].apply(lambda x : ','.join(x)).reset_index()


cols = ['elements1','elements2'] # sort cols by your desired input. 

print(df1[cols].sort_values('elements1'))
  elements1 elements2
1       a,b       dog
0     a,x,c       cat
2       m,k       pig