我正在使用pandas对数据帧进行排序,并计算落入一小时间隔的值(行)数。我的数据框名为col_times,如下所示:
然后我使用col_times.set_index('date_time').resample(rule = 'H')['Uhrzeit'].count()
来计算每小时的值。这从14:00:00开始,因为现在有价值,最早的时间是14:57:07。但是,我需要在10:00:00开始计数,因为我有逻辑并且我需要在各种数据帧上应用它,我需要看到10:00:00和10:59之间没有值: 59。如何设置重采样功能呢?
答案 0 :(得分:1)
您必须添加日期从10:00
开始的新行:
col_times = col_times.set_index('date_time')
date = pd.to_datetime(col_times.index.min().replace(hour=10, minute=0))
col_times.loc[date] = np.nan
print (col_times)
Datum Uhrzeit
date_time
2017-10-16 14:57:07 16.10.2017 14:57:07
2017-10-16 14:57:49 16.10.2017 14:57:49
2017-10-16 14:57:57 16.10.2017 14:57:57
2017-10-16 14:58:11 16.10.2017 14:58:11
2017-10-16 14:58:21 16.10.2017 14:58:21
2017-10-16 10:00:07 NaN NaN
df = col_times.resample(rule = 'H')['Uhrzeit'].count()
print (df)
date_time
2017-10-16 10:00:00 0
2017-10-16 11:00:00 0
2017-10-16 12:00:00 0
2017-10-16 13:00:00 0
2017-10-16 14:00:00 5
Freq: H, Name: Uhrzeit, dtype: int64