我有数据帧:
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
。此数据帧中的所有项都是字符串。
我们可以使用groupby
,apply
和一个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