美文网首页大数据 爬虫Python AI Sql
pandas groupby用法之as_index

pandas groupby用法之as_index

作者: 默直 | 来源:发表于2019-07-25 19:48 被阅读4次

pandas groupby用法之as_index


DataFrame.groupby(self,by=None,axis=0,level=None,as_index=True,sort=True,group_keys=True,squeeze=False,observed=False,**kwargs)


方便阅读

此次用例是讲解使用groupby分组计算后,得到的结果表头信息并不在一行,分组后的列字段只有一个值,并不是所有。要想实现列名都在第一行我们可以使用as_index

那么今天就讲解一下as_index的用法:

as_index : bool,默认为True

对于聚合输出,返回以组标签作为索引的对象。仅与DataFrame输入相关。as_index = False实际上是“SQL风格”的分组输出。

如下是没有使用as_index的实验结果:

import pandasas pd

from pyechartsimport Line

df= pd.DataFrame({'name': ['张三','李四','王五','张三','王五','张三','赵六','张三','赵六'],

                                      'sex': ['男','女','男','男','男','男','女','女','女'],

                                       'num1': [2.9,9.0,8.5,5.6,5.6,5.2,1.2,4.5,3.2],

                                        'num2': [5.2,2.5,6.3,5.6,4.5,5.6,1.2,8.5,1.2]

                                    })

# 根据其中两列分组,并求均值

df_expenditure_mean= df.groupby(['sex','name'])['num1'].agg({'means':'mean'})

print(df_expenditure_mean)

结果

如下是使用as_index的结果:

import pandasas pd

from pyechartsimport Line

df= pd.DataFrame({'name': ['张三','李四','王五','张三','王五','张三','赵六','张三','赵六'],

                                      'sex': ['男','女','男','男','男','男','女','女','女'],

                                       'num1': [2.9,9.0,8.5,5.6,5.6,5.2,1.2,4.5,3.2],

                                        'num2': [5.2,2.5,6.3,5.6,4.5,5.6,1.2,8.5,1.2]

                                    })

# 根据其中两列分组,并求均值

df_expenditure_mean= df.groupby(['sex','name'],as_index=False)['num1'].agg({'means':'mean'})

print(df_expenditure_mean)

实验结果

通过两图对比,发现他们之间的区别。并且实现了列名都在第一行


好啦,就到这里啦,谢谢。

相关文章

网友评论

    本文标题:pandas groupby用法之as_index

    本文链接:https://www.haomeiwen.com/subject/enbhrctx.html