计算数据帧列中每7个实例的平均值

2024-04-23 06:39:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有每日资产价格的数据框: Picture of head of Dataframe

我想创建一个具有弱平均资产价格的pandas系列(也可以是dataframe或其他一些数据结构中的附加列)。这意味着我需要计算列中每7个连续实例的平均值,并将其保存到一个系列中

Picture of how result should look like

由于我对python是一个完全的新手(就这一点而言,一般来说编程),我真的不知道如何开始

我非常感谢每一个提示


Tags: of数据实例数据结构dataframepandas价格result
1条回答
网友
1楼 · 发布于 2024-04-23 06:39:14

我认为需要^{}通过numpy数组的模来创建^{}对于通用解决方案,也可以使用所有索引(例如,使用DatetimeIndex):

np.random.seed(2018)

rng = pd.date_range('2018-04-19', periods=20)
df = pd.DataFrame({'Date': rng[::-1], 
                   'ClosingPrice': np.random.randint(4, size=20)})  
#print (df)

df['weekly'] = df['ClosingPrice'].groupby(np.arange(len(df)) // 7).transform('mean')
print (df)
    ClosingPrice       Date    weekly
0              2 2018-05-08  1.142857
1              2 2018-05-07  1.142857
2              2 2018-05-06  1.142857
3              1 2018-05-05  1.142857
4              1 2018-05-04  1.142857
5              0 2018-05-03  1.142857
6              0 2018-05-02  1.142857
7              2 2018-05-01  2.285714
8              1 2018-04-30  2.285714
9              1 2018-04-29  2.285714
10             3 2018-04-28  2.285714
11             3 2018-04-27  2.285714
12             3 2018-04-26  2.285714
13             3 2018-04-25  2.285714
14             1 2018-04-24  1.666667
15             0 2018-04-23  1.666667
16             3 2018-04-22  1.666667
17             2 2018-04-21  1.666667
18             2 2018-04-20  1.666667
19             2 2018-04-19  1.666667

细节

print (np.arange(len(df)) // 7)
[0 0 0 0 0 0 0 1 1 1 1 1 1 1 2 2 2 2 2 2]

相关问题 更多 >