我有一个这样的数据集。
date_time value
30.04.20 9:31 1
30.04.20 10:12 5
30.04.20 15:16 2
01.05.20 12:01 63
01.05.20 13:00 78
02.05.20 7:23 4
02.05.20 17:34 2
02.05.20 18:34 4
02.05.20 21:39 3458
03.05.20 9:34 77
03.05.20 14:54 4
03.05.20 16:54 7
04.05.20 15:24 35
我需要将一天内的记录进行分组,并计算出3天(day_before-today-next_day)期间的平均数,如下所示(想要的结果)。
date value
01.05.2020 3617
02.05.2020 3697
03.05.2020 3591
我写了开头的代码
import pandas as pd
df = pd.read_excel(...)
df['date'] = df['date_time'].dt.normalize()
df.groupby('date').sum()
这里的分组数据框看起来是这样的。
date value
30.04.2020 8
01.05.2020 141
02.05.2020 3468
03.05.2020 88
04.05.2020 35
但我不能再往下看了 因为我不知道如何用简洁的 "大熊猫 "方式 得到想要的结果。请给我一些指点。
你几乎已经完成了你的工作,只需将这几行代码添加到你当前的解决方案中。
df_group = df.groupby('date').sum()
results = df_group.rolling(window=3, min_periods=3, center=True).sum()
print(results)
2020-04-30 NaN
2020-05-01 3617.0
2020-05-02 3697.0
2020-05-03 3591.0
2020-05-04 NaN
# retain only rows with values
print(results.dropna())
date
2020-05-01 3617.0
2020-05-02 3697.0
2020-05-03 3591.0
希望能帮到你