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(…)