将非连续的 15 分钟数据重新采样为 pandas 中的每小时分组数据

resample a non-continuous 15-minutes data to an hourly groupped data in pandas

我有一个包含 5 个站点 20 年降水量的数据框。每天 8 小时不连续地收集 15 分钟的观察结果。我想找到总共8小时(早上7点到10点,13点到14点,下午16点到17点)降水量最大的站点和日期。

我想做的是,首先将数据重新采样为每个站点的每小时数据,然后找到每个位置重叠的 8 小时,然后找到最大值。

我的数据框:

time_start obs_id station_id precipition
2000-01-11 07:00:00-05:00 1 st_1 10
2000-01-11 07:30:00-05:00 1 st_1 2
2000-01-11 07:45:00-05:00 1 st_1 1
2000-01-11 09:00:00-05:00 1 st_1 3
2000-01-11 09:15:00-05:00 1 st_1 1
2000-01-11 09:30:00-05:00 1 st_1 0
2000-01-11 09:45:00-05:00 1 st_1 1
2000-01-12 07:00:00-05:00 1 st_1 10
2000-01-12 07:30:00-05:00 2 st_1 2
2000-01-12 07:45:00-05:00 2 st_1 1
2000-01-12 09:00:00-05:00 2 st_1 3
2000-01-12 09:15:00-05:00 2 st_1 1
2000-01-12 09:30:00-05:00 2 st_1 0
2000-01-12 09:45:00-05:00 2 st_1 1
2000-01-11 07:00:00-05:00 1 st_2 10
2000-01-11 07:30:00-05:00 1 st_2 2
2000-01-11 07:45:00-05:00 1 st_2 1
2000-01-11 09:00:00-05:00 1 st_2 3
2000-01-11 09:15:00-05:00 1 st_2 1
2000-01-11 09:30:00-05:00 1 st_2 0
2000-01-11 09:45:00-05:00 1 st_2 1
2000-01-12 07:00:00-05:00 1 st_2 10
2000-01-12 07:30:00-05:00 2 st_2 2
2000-01-12 07:45:00-05:00 2 st_2 1
2000-01-12 09:00:00-05:00 2 st_2 3
2000-01-12 09:15:00-05:00 2 st_2 1
2000-01-12 09:30:00-05:00 2 st_2 0
2000-01-12 09:45:00-05:00 2 st_2 1

我使用了这段代码,但它不起作用。

df_H = df.resample('H', on='time_start', closed='right').sum().reset_index()

我想要一个 table 每个位置都有一个排序时间和降水总和

您可以使用.groupby() and then resample using DataFrameGroupBy.resample()station_id分组,如下:

df_H = df.groupby('station_id').resample('H', on='time_start', closed='right')['precipition'].sum().reset_index()

结果:

print(df_H)

   station_id                time_start  precipition
0        st_1 2000-01-11 06:00:00-05:00           10
1        st_1 2000-01-11 07:00:00-05:00            3
2        st_1 2000-01-11 08:00:00-05:00            3
3        st_1 2000-01-11 09:00:00-05:00            2
4        st_1 2000-01-11 10:00:00-05:00            0
5        st_1 2000-01-11 11:00:00-05:00            0
6        st_1 2000-01-11 12:00:00-05:00            0
7        st_1 2000-01-11 13:00:00-05:00            0
8        st_1 2000-01-11 14:00:00-05:00            0
9        st_1 2000-01-11 15:00:00-05:00            0
10       st_1 2000-01-11 16:00:00-05:00            0
11       st_1 2000-01-11 17:00:00-05:00            0
12       st_1 2000-01-11 18:00:00-05:00            0
13       st_1 2000-01-11 19:00:00-05:00            0
14       st_1 2000-01-11 20:00:00-05:00            0
15       st_1 2000-01-11 21:00:00-05:00            0
16       st_1 2000-01-11 22:00:00-05:00            0
17       st_1 2000-01-11 23:00:00-05:00            0
18       st_1 2000-01-12 00:00:00-05:00            0
19       st_1 2000-01-12 01:00:00-05:00            0
20       st_1 2000-01-12 02:00:00-05:00            0
21       st_1 2000-01-12 03:00:00-05:00            0
22       st_1 2000-01-12 04:00:00-05:00            0
23       st_1 2000-01-12 05:00:00-05:00            0
24       st_1 2000-01-12 06:00:00-05:00           10
25       st_1 2000-01-12 07:00:00-05:00            3
26       st_1 2000-01-12 08:00:00-05:00            3
27       st_1 2000-01-12 09:00:00-05:00            2
28       st_2 2000-01-11 06:00:00-05:00           10
29       st_2 2000-01-11 07:00:00-05:00            3
30       st_2 2000-01-11 08:00:00-05:00            3
31       st_2 2000-01-11 09:00:00-05:00            2
32       st_2 2000-01-11 10:00:00-05:00            0
33       st_2 2000-01-11 11:00:00-05:00            0
34       st_2 2000-01-11 12:00:00-05:00            0
35       st_2 2000-01-11 13:00:00-05:00            0
36       st_2 2000-01-11 14:00:00-05:00            0
37       st_2 2000-01-11 15:00:00-05:00            0
38       st_2 2000-01-11 16:00:00-05:00            0
39       st_2 2000-01-11 17:00:00-05:00            0
40       st_2 2000-01-11 18:00:00-05:00            0
41       st_2 2000-01-11 19:00:00-05:00            0
42       st_2 2000-01-11 20:00:00-05:00            0
43       st_2 2000-01-11 21:00:00-05:00            0
44       st_2 2000-01-11 22:00:00-05:00            0
45       st_2 2000-01-11 23:00:00-05:00            0
46       st_2 2000-01-12 00:00:00-05:00            0
47       st_2 2000-01-12 01:00:00-05:00            0
48       st_2 2000-01-12 02:00:00-05:00            0
49       st_2 2000-01-12 03:00:00-05:00            0
50       st_2 2000-01-12 04:00:00-05:00            0
51       st_2 2000-01-12 05:00:00-05:00            0
52       st_2 2000-01-12 06:00:00-05:00           10
53       st_2 2000-01-12 07:00:00-05:00            3
54       st_2 2000-01-12 08:00:00-05:00            3
55       st_2 2000-01-12 09:00:00-05:00            2