在熊猫中按列的所有元素分组



我有数据帧:

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。此数据帧中的所有项都是字符串。

我们可以使用groupbyapply和一个lambda,我们用逗号连接所有匹配的元素。

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

最新更新