Pandas是一种数据处理和分析的常用工具,其中的Groupby和Sum是常用的数据分组和聚合方法。
一、Pandas Groupby
Groupby是一种根据某些条件将数据集分组的方法。例如,可以将相同年龄的人分到一组,将相同地区的人分到一组等。使用DataFrame的groupby方法可以轻松地实现数据分组功能。
1.1语法
DataFrame.groupby(by=None, axis=0, level=None, as_index=True,
sort=True, group_keys=True, squeeze=False, **kwargs)
该方法接受以下参数:
- by : 明确分组依据的列。
- axis : 分组操作沿着的轴,0表示纵向,1表示横向,默认为0。
- level : 如果参数 axis 是多级索引的(MultiIndex),则 level 可以用于指定在哪个级别上进行分组操作。
- as_index : 如果为True,则数据框的输出结果不包括分组依据列(s),而以索引的形式呈现。默认为 True。
- sort : 在根据分组依据排序之前,是否在中间过程中排序。默认为 True,设置为False可以提高性能。
- group_keys : 如果为True,则在结果中添加一个列来标记分组依据列和每个组的编号。默认为 True。
- squeeze : 如果可能,则减少返回对象的维度。
1.2实例说明
在以下实例中,我们将使用Pandas读取一个csv文件,该文件记录了三家店铺在多个工作日内的销售情况。我们将使用groupby方法对不同的工作日进行分组,并对每个分组计算总销售额。
首先我们需要导入 Pandas 并且读取数据:
import pandas as pd
data = pd.read_csv("sales.csv")
print(data)
输出:
Date Store Sales
0 9/22/2018 1 200
1 9/22/2018 2 150
2 9/22/2018 3 175
3 9/25/2018 1 180
4 9/25/2018 2 160
5 9/25/2018 3 200
6 9/26/2018 1 220
7 9/26/2018 2 210
8 9/26/2018 3 190
9 9/27/2018 1 230
10 9/27/2018 2 220
11 9/27/2018 3 235
我们可以使用groupby方法对数据按照日期(Date)进行分组,并且计算每组总销售额:
grouped_data = data.groupby('Date')['Sales'].sum()
print(grouped_data)
输出:
Date
9/22/2018 525
9/25/2018 540
9/26/2018 620
9/27/2018 685
Name: Sales, dtype: int64
在上面的代码中,我们使用了groupby方法将数据按照日期分组,并且使用sum方法计算每组的总销售额。注意,我们使用的是['Sales']选取要聚合的列。
二、Pandas Sum
在上面的实例中,我们使用了sum方法计算每个组的总销售额。下面我们将详细讲解sum方法的使用。
2.1语法
sum方法的语法如下:
Series.sum(axis=None, skipna=None, level=None, numeric_only=None, min_count=0)
DataFrame.sum(axis=None, skipna=None, level=None, numeric_only=None, min_count=0)
sum方法接受以下参数:
- axis:0表示横向,1表示纵向。
- skipna:是否忽略NaN值,默认为True。
- level:序列多层次索引的指定级别,根据层次分组,axis默认为0。
- numeric_only:是否只对数字类型求和,默认为True。
- min_count:要在所求和非NaN数据点的最小数量。
2.2实例说明
继续以上面的例子为例,我们可以使用sum方法来计算总销售额。当前的DataFrame包含三列表示日期、商店编号和销售额。如果我们只需要计算销售额总和,那么可以只保留"Sales"列,使代码更简洁:
total_sales = data['Sales'].sum()
print(total_sales)
输出:
2535
在上面的代码中,我们首先使用 data['Sales'] 来提取“Sales”列,然后使用 sum 方法计算总销售额。
总结:以上是Pandas Groupby和Sum完成攻略的基本介绍及实例说明。Groupby和Sum常常在数据处理和分析过程中起到核心作用。配合其他Pandas方法使用时,可以快速、准确地进行数据分析和可视化展示。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas Groupby和Sum - Python技术站