本文共 1394 字,大约阅读时间需要 4 分钟。
透视表是一种可以对数据动态排布并且分类汇总的表格格式
pivot_table(data, values=None, index=None, columns=None,aggfunc='mean', fill_value=None, margins=False, dropna=True, margins_name='All')
pivot_table有四个最重要的参数index、values、columns、aggfunc,本文以这四个参数为中心讲解pivot操作是如何进行。
import pandas as pd import numpy as np df = pd.read_csv('James_Harden.csv',encoding='utf8') df.head()
#查看哈登对阵每个队伍的得分,首先我们将对手设置为index: pd.pivot_table(df,index='对手').head()
#看对阵同一对手在不同主客场下的数据,将对手与胜负与主客场都设置为index pd.pivot_table(df,index=['对手','主客场']).head(8)
# 当我们未设置aggfunc时,它默认aggfunc='mean'计算均值 pd.pivot_table(df,index=['主客场','胜负'],values=['助攻','篮板','得分'])
#margins=1 添加总和 pd.pivot_table(df,index=['主客场'],columns=['对手'],values=['得分'],aggfunc=[np.sum],fill_value=0,margins=1)
table = pd.pivot_table(df,index=['对手','胜负'],columns=['主客场'],values=['助攻','篮板','得分'],aggfunc=[np.mean],fill_value=0) table
# 当我们未设置aggfunc时,它默认aggfunc='mean'计算均值 pd.pivot_table(df,index=['主客场','胜负'],values=['助攻','篮板','得分'],aggfunc=[np.mean,np.max])
table.query('对手==["76人"]')
pd.pivot_table(df,index=[字段1],values=[字段2],aggfunc=[函数],fill_value=0)
df.groupby([字段1])[字段2].agg(函数).fillna(0)
上面两个函数完全等价,pivot_table仿佛是加入了columns与margin功能的groupby函数,比groupby更加灵活。
数据下载: 提取码: yr9q
转载地址:http://imdsn.baihongyu.com/