上一篇曾经写过,针对Series和Dataframe的group分组,那是针对现有的列进行处理,本篇文章针对现有数据,分组后生成新列。
一、数据准备
df = pd.read_excel("/untitled/this/ant-learn-pandas/testforpandas/分组统计.xlsx",engine = "openpyxl")
print(df.head())
image.png
二、以班级为维度进行分组,统计每个年级的总分,人数,平均成绩,标准差
result1 = df.groupby(by = ['班级'])['成绩'].agg([
('总分', 'sum'),
('人数', 'size'),
('平均成绩', 'mean'),
('标准差', 'std'),
()
])
print(result1)
image.png
三、通过cut函数,完成分组统计,以"分组"为维度
bins = [min(df.成绩) - 1,70,80,90,max(df.成绩)+1]
labels = ["70一下","71~80","81~90","90以上"]
df["分组"] = pd.cut(df.成绩,bins,labels = labels)
print(df)
image.png
网友评论