我有一个简单的
dataframe
(df),如下图所示。
index Job Person
1 j1 Cathy
2 j2 Mark
3 j3 Cathy
4 j4 Steve
5 j5 Cathy
6 Cathy
7 j1 Cathy
我想把上述dataframe
转换为。
Person CountJob JobDetails
Cathy 4 j1;j3;j5
Mark 1 j2
Steve 1 j4
i.e, drop the Nulls并加入Unique每个人的工作。
我可以用groupby
部分地解决这个问题。
df.groupby('Person').agg(CountJob=('Job','count'),
JobDetails=('Job',lambda x: ';'.join(x.dropna()))
我能够删除空值,但似乎无法获得唯一的值;在上面的例子中,对于'凯茜', '工作细节' becomes j1;j3;j5;j1