首先介绍一下 Pandas 中的 groupby
方法,它是一种根据某些条件拆分数据,并将其应用于特定的函数、方法、操作等的数据分组技术。例如,我们可以根据商品的类别对销售数据进行分组统计,得到每个类别的销售额和销量等信息。
下面是一个示例代码进行说明,假设我们有一份销售数据sales.csv,包含商品名称、商品类别、销售日期和销售金额等信息。
import pandas as pd
# 读取数据
data = pd.read_csv('sales.csv')
# 根据商品类别分组,并计算销售总金额
grouped = data.groupby(by='category')
total_sale = grouped['amount'].sum()
print(total_sale)
运行结果如下所示:
category
服饰 3520
家居 6590
电器 11876
Name: amount, dtype: int64
上述代码首先读取了销售数据,然后使用 groupby
方法根据商品类别进行分组,并使用 sum
方法计算每个组的销售总金额。
接着介绍一下如何计算中位数。中位数是一种统计中的常用数据,它表示将一组数据按照从小到大的顺序排列后,位于中间位置的数值,即将数据分成两半,中间的那个数值。
下面是一个示例代码进行说明,假设我们有一组数据scores,需要计算其中位数。
import numpy as np
# 生成数据
scores = np.random.randint(0, 10, size=10)
# 计算中位数
median = np.median(scores)
print(scores)
print(median)
运行结果如下所示:
[0 9 9 9 7 7 8 0 7 0]
7.0
上述代码首先使用Numpy生成了一组随机数据,然后使用Numpy的 median
方法计算了这组数据的中位数。
结合上述两个示例,如果我们需要计算某一商品类别的销售金额中位数,可以通过以下代码实现:
import pandas as pd
import numpy as np
# 读取数据
data = pd.read_csv('sales.csv')
# 根据商品类别分组,并计算销售金额中位数
grouped = data.groupby(by='category')
median_sale = grouped['amount'].apply(np.median)
print(median_sale)
运行结果如下所示:
category
服饰 823
家居 862
电器 890
Name: amount, dtype: int64
上述代码首先使用 groupby
方法根据商品类别进行分组,然后使用 apply
方法将 np.median
函数应用于每个组的销售金额数据,并计算中位数。最终得到每个组的销售金额中位数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas groupby和计算中位数 - Python技术站