pandas dataframe 分组聚合时,分组组名并入列的方法

利用pandas做分组聚合时,分组组名默认是变化成index,如图

grouped = tdf.groupby('uid')
mean=grouped.mean();
forwardmeandf=pd.DataFrame(mean)

代码中tdf是一个dataframe 当以uid分组,并求每组的平均值后在转化为dataframe ,组名并入到index

pandas dataframe 分组聚合时,分组组名并入列的方法_第1张图片

这样非常不方便我们通过index获取值,因为uid太长了。这个问题苦恼了我很久,终于在官方文档中看到解决方法,只要在分组的时候指定as_index=false便可。

grouped = tdf.groupby('uid',as_index=False)
mean=grouped.mean();
forwardmeandf=pd.DataFrame(mean)

结果如图

pandas dataframe 分组聚合时,分组组名并入列的方法_第2张图片

这样不但方便我们利用index做选取,而且使利用uid与没有分组的表做join也成为可能。

另外。。。国内关于pandas的资料太少了,建议还是看官方文档。

你可能感兴趣的:(数据挖掘)