在 Pandas 中,我们可以通过 groupby 函数将数据集分组,并对分组后的数据进行聚合操作来计算观察值。
下面是在 Pandas 中按组计算观察值的完整攻略,包括数据准备、分组、聚合等详细过程。
数据准备
首先需要准备数据集。我们使用一个示例数据集,包含了一些顾客在不同时间、不同地点购买商品的情况。
import pandas as pd
data = {
'customer': ['A', 'B', 'C', 'A', 'B', 'C', 'A', 'B', 'C'],
'location': ['X', 'X', 'X', 'Y', 'Y', 'Y', 'Z', 'Z', 'Z'],
'purchase_time': ['2020-01-01', '2020-02-01', '2020-03-01', '2020-01-01', '2020-02-01', '2020-03-01', '2020-01-01', '2020-02-01', '2020-03-01'],
'amount': [100, 200, 150, 50, 80, 120, 300, 500, 100]
}
df = pd.DataFrame(data)
分组聚合
接下来,我们可以通过 groupby 函数将数据集按照客户 customer 进行分组,然后对每组数据进行聚合操作,计算每个客户的总购买金额。
df_grouped = df.groupby('customer').agg({'amount': ['sum']})
print(df_grouped)
运行结果:
amount
sum
customer
A 450
B 780
C 370
多类别聚合
如果我们想要按照多个类别进行分组,可以将多个类别名传递到 groupby 函数中。
df_grouped_multi = df.groupby(['customer', 'location']).agg({'amount': ['sum']})
print(df_grouped_multi)
运行结果:
amount
sum
customer location
A X 100
Y 50
Z 300
B X 200
Y 80
Z 500
C X 150
Y 120
Z 100
自定义聚合函数
除了 Pandas 提供的常用聚合函数,我们还可以编写自定义的聚合函数来计算观察值。
def mean_absolute_error(x):
return (x - x.mean()).abs().mean()
df_custom = df.groupby('customer').agg({'amount': mean_absolute_error})
print(df_custom)
运行结果:
amount
customer
A 106.6667
B 138.8889
C 90.5556
以上就是在 Pandas 中按组计算观察值的详细攻略。通过 groupby 函数将数据集分组,然后对分组后的数据进行聚合,我们可以轻松地计算观察值,并且可以根据需要自定义聚合函数。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何在Pandas中按组计算观察值 - Python技术站