首页 > 解决方案 > Pandas:X 天分组的平均值

问题描述

我想以 10 天为一组(JAN/01 到 JAN/10)平均 AAPL.High 的值,使用第 10 天作为参考编号。

import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')

代码的思想大概是:

df1['demand'] = df1.groupby(['supplier_name', 'date'])['difference'].transform('mean').fillna(0)

标签: pythonpandas

解决方案


将索引定义为日期的简单案例然后只需使用resample()

import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/finance-charts-apple.csv')
df.index = pd.to_datetime(df["Date"])
df.resample("10d").agg({"AAPL.High":np.mean})

输出

            AAPL.High
Date    
2015-02-17  130.657501
2015-02-27  129.675001
2015-03-09  126.661251
2015-03-19  127.134283
2015-03-29  126.533333
... ...
2017-01-07  119.532001
2017-01-17  120.841248
2017-01-27  125.740000
2017-02-06  133.172500
2017-02-16  135.899994


推荐阅读