回帖:数据处理 GroupBy 透视
df.groupby(col) # 返回一个按列col进行分组的Groupby对象
df.groupby() # 返回一个按多列进行分组的Groupby对象
df.groupby(col1) # 返回按列col1进行分组后,列col2的均值
# 创建一个按列col1进行分组,并计算col2和col3的最大值的数据透视表
df.pivot_table(index=col1,
values=,
aggfunc=max,
as_index=False)
# 同上
df.pivot_table(index=['site_id', 'utype'],
values=['uv_all', 'regist_num'],
aggfunc=['max', 'mean'])
df.groupby(col1).agg(np.mean) # 返回按列col1分组的所有列的均值
# 按列将其他列转行
pd.melt(df, id_vars=["day"], var_name='city', value_name='temperature')
# 交叉表是用于统计分组频率的特殊透视表
pd.crosstab(df.Nationality,df.Handedness)
# groupby 后排序,分组 agg 内的元素取固定个数
(
df[(df.p_day >= '20190101')]
.groupby(['p_day', 'name'])
.agg({'uv':sum})
.sort_values(['p_day','uv'], ascending=)
.groupby(level=0).head(5) # 每天取5个页面
.unstack()
.plot()
)
# 合并查询经第一个看(max, min, last, size:数量)
df.groupby('结算类型').first()
# 合并明细并分组统计加总('max', `mean`, `median`,
# `prod`, `sum`, `std`,`var`, 'nunique'),'nunique'为去重的列表
df1 = df.groupby(by='设计师ID').agg({'结算金额':sum})
df.groupby(by=df.pf).ip.nunique() # groupby distinct, 分组+去重数
df.groupby(by=df.pf).ip.value_counts() # groupby 分组+去重的值及数量
df.groupby('name').agg(['sum', 'median', 'count'])