获取具有不规则时间间隔的行值的 rolling.sum

Getting the rolling.sum of row values with irregular time intervals

我正在尝试获取我的时间序列的 rolling.sum。然而,这些行有不同的时间间隔(见下面我的 df_water_level_US1 数据框):

    DATE    TIMEREAD    WATERLEVEL(M)   DateAndTime
0   01/01/2016  0:00:15 0.65    01/01/2016 0:00:15
1   01/01/2016  0:10:14 0.65    01/01/2016 0:10:14
2   01/01/2016  0:20:11 0.64    01/01/2016 0:20:11
3   01/01/2016  0:30:12 0.66    01/01/2016 0:30:12
4   01/01/2016  0:40:12 0.64    01/01/2016 0:40:12

等等。 我试图用它来获取每一天的总和并将其保存到 final_1D:

final_1D = df_water_level_US1.set_index('DateAndTime').rolling('1D').sum()

但是我得到这个错误:

ValueError: window must be an integer 0 or greater

预期输出为:

DATETIMEREAD   WATERLEVEL(M) DateAndTime
01/01/2016     3.24         01/01/2016 

等等(02/01/2016、03/01/2016 等)

有人知道如何解决这个问题吗?

对于每天的水位总和尝试按日期分组:

df.groupby('Date').sum('WATERLEVEL(M)')

尝试:

df_water_level_US1['DateAndTime'] = pd.to_datetime(df_water_level_US1['DateAndTime'])
final_1D = df_water_level_US1.resample('D', on='DateAndTime')['WATERLEVEL(M)'].sum()

print(final_1D.reset_index())

# Output
  DateAndTime  WATERLEVEL(M)
0  2016-01-01           3.24

如果您的列 DateAndTime 已经是 DatetimeIndex,则第一行不是必需的。