相关文章推荐
绅士的创口贴  ·  震惊! ...·  1 周前    · 
被表白的橙子  ·  使用Python ...·  1 周前    · 
玩篮球的跑步机  ·  Common MIME types - ...·  11 月前    · 
直爽的毛衣  ·  module ...·  1 年前    · 

此次用例是讲解使用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)

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)