首页| 论坛| 消息
主题:Pandas 速查手册
回帖:数据处理 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'])
下一楼›:数据合并
# 合并拼接行
# 将df2中的行添加到df1的尾部
df1.append(df2)
# 指定 ..
‹上一楼:数据选取
df[col] # 根据列名,并以Series的形式返回列df[[col1, col2]] # 以DataFrame形式 ..

查看全部回帖(13)
«返回主帖