详解pandas.groupby()(按列分组)函数使用方法

pandas.groupby()的作用

pandas.groupby()用于按照一定的条件(实际上就是指定一个或多个列)对数据集进行分组,分组后可以对各个分组做一些统计分析,如求和、平均值等。

pandas.groupby()的使用方法

创建数据集

在进行分组操作之前,首先需要创建一个数据集。

例如,创建一个记录销售额的数据集:

import pandas as pd

data = {
    '购买次数':[1,2,3,1,2,3],
    '商品':['A','B','C','A','B','C'],
    '销售额':[200,250,380,350,420,480]
}

df = pd.DataFrame(data)

print(df)

输出结果:

   购买次数 商品  销售额
0      1  A  200
1      2  B  250
2      3  C  380
3      1  A  350
4      2  B  420
5      3  C  480

按照商品进行分组

根据商品对数据集进行分组操作,使用groupby()函数,传递的参数为一个或多个列名,表示对这些列进行分组。

例如,按照商品名称对数据集进行分组:

grouped = df.groupby('商品')

print(grouped)

输出结果:

<pandas.core.groupby.generic.DataFrameGroupBy object at 0x7fd3e156be50>

对分组后的数据进行统计分析

分组后,我们可以对每一个分组进行一些统计分析,如求和、平均值等。常用的函数有sum()、mean()、count()等。

例如,对商品为A的销售额进行求和操作:

grouped_sum = grouped['销售额'].sum()

print(grouped_sum)

输出结果:

商品
A     550
B     670
C    860
Name: 销售额, dtype: int64

将分组后的数据展示在一起

有时候将分组后的数据展示在一起,可以更加清晰地显示数据分析结果。

例如,将所有分组的销售额和显示在一张表格中:

grouped_df = grouped_sum.reset_index()
print(grouped_df)

输出结果:

  商品  销售额
0  A    550
1  B    670
2  C    860

接下来我们举两个实例:

分组统计学生成绩

import pandas as pd

data = {
    '姓名':['张三','李四','王五','赵六','小明','小红','小刚','小亮'],
    '性别':['男','男','男','男','男','女','女','女'],
    '科目':['语文','语文','语文','语文','数学','数学','数学','数学'],
    '成绩':[80,85,90,67,78,98,80,76]
}

df = pd.DataFrame(data)

print(df)

输出结果:

   姓名 性别  科目  成绩
0  张三  男  语文  80
1  李四  男  语文  85
2  王五  男  语文  90
3  赵六  男  语文  67
4  小明  男  数学  78
5  小红  女  数学  98
6  小刚  女  数学  80
7  小亮  女  数学  76
# 按照科目对数据集进行分组操作
grouped = df.groupby('科目')

# 统计每个分组的平均分
grouped_mean = grouped['成绩'].mean()

print(grouped_mean)

输出结果:

科目
数学    83.0
语文    80.5
Name: 成绩, dtype: float64

分组计算销售额

import pandas as pd

data = {
    '购买次数':[1,2,3,1,2,3],
    '商品':['A','B','C','A','B','C'],
    '销售额':[200,250,380,350,420,480]
}

df = pd.DataFrame(data)

print(df)

输出结果:

   购买次数 商品  销售额
0      1  A  200
1      2  B  250
2      3  C  380
3      1  A  350
4      2  B  420
5      3  C  480
# 按照商品名称对数据进行分组操作
grouped = df.groupby('商品')

# 统计各商品的总销售额
grouped_sum = grouped['销售额'].sum()

# 将分组后的结果保存为CSV文件
grouped_sum.to_csv('sales.csv')

print(grouped_sum)

输出结果:

商品
A     550
B     670
C    860
Name: 销售额, dtype: int64

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解pandas.groupby()(按列分组)函数使用方法 - Python技术站

(1)
上一篇 2023年3月22日
下一篇 2023年3月22日

相关文章

合作推广
合作推广
分享本页
返回顶部