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)
通過兩圖對比,發(fā)現他們之間的區(qū)別高职。并且實現了列名都在第一行
好啦钩乍,就到這里啦,謝謝怔锌。