Python-GroupByAGG

Python-GroupByAGG,python,pandas,dataframe,pandas-groupby,Python,Pandas,Dataframe,Pandas Groupby,我有一个简单的数据帧(df),如下所示: index Job Person 1 j1 Cathy 2 j2 Mark 3 j3 Cathy 4 j4 Steve 5 j5 Cathy 我想将上述数据帧转换为: Person CountJob JobDetails Cathy 3 j1;j3;j5 Mark 1 j2 Steve 1 j4 我可以使用groupby部分解决此

我有一个简单的
数据帧
(df),如下所示:

index Job  Person 
1     j1   Cathy
2     j2   Mark
3     j3   Cathy
4     j4   Steve
5     j5   Cathy
我想将上述
数据帧
转换为:

Person CountJob  JobDetails
Cathy     3      j1;j3;j5
Mark      1      j2
Steve     1      j4
我可以使用
groupby
部分解决此问题:

final = df.groupby('Person').agg(
        CountJob=pd.NamedAgg(column='Job',aggfunc="count"),
        )
我正在努力获取最后一列“
JobDetails
”的格式。我猜我可以使用
lambda
函数,但我不知道如何使用

试试看:

df.groupby('Person').agg(CountJob=('Job','count'),
                         JobDetails=('Job',';'.join)
                        )

哇!简洁完美!如何处理.join部分中的“null值”?在join之前删除a我在使用“dropna()”时一直出错。也许我的语法错了。我最终将整个df转换为str。。df=df.astype(str),然后运行groupby。。dropna的语法是什么?@CodeMaster try
('Job',lambda x:';')。join(x.dropna())
。或
df.dropna('Job')。groupby(…)