看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gr99123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
(编码题)给定某商店2023年的每日销售数据,要求使用 resample() 方法进行简单的月度统计。源数据如下:
import pandas as pd
import numpy as np
# 生成2023年1-3月每日销售数据
np.random.seed(42)
dates = pd.date_range('2023-01-01', '2023-03-31', freq='D')
sales = np.random.randint(100, 500, size=len(dates))
df = pd.DataFrame({'date': dates, 'sales': sales})
df.set_index('date', inplace=True)
print("原始数据前5行:")
print(df.head())
输出结果:
原始数据前5行:
sales
date
2023-01-01 409
2023-01-02 497
2023-01-03 268
2023-01-04 475
2023-01-05 353
具体要求:
代码如下:
import pandas as pd
import numpy as np
# 生成2023年1-3月每日销售数据
np.random.seed(42)
dates = pd.date_range('2023-01-01', '2023-03-31', freq='D')
sales = np.random.randint(100, 500, size=len(dates))
df = pd.DataFrame({'date': dates, 'sales': sales})
df.set_index('date', inplace=True)
# 使用 resample() 进行月度统计
(
df.resample('ME')
.agg(total=('sales', 'sum'),
avg=('sales', 'mean'),
count=('sales', 'size'),
)
)
输出结果:
total avg count
date
2023-01-31 9697 312.806452 31
2023-02-28 8371 298.964286 28
2023-03-31 9761 314.870968 31
参考代码的逻辑思路:
resample('M')
按月份对数据进行重采样.sum()
计算每个月的销售总额.mean()
计算每个月的平均每日销售额.count()
统计每个月的销售天数这种方法非常适合初学者学习时间序列重采样的基本用法,能够快速掌握如何按不同时间粒度汇总数据。
(完)
更新时间:2025-09-15 17:24:07 标签:pandas python resample 销售统计