通过顺序遍历数据并在每次验证特定条件时创建新组来对数据帧进行分组的正确方式是什么。
例如:
time = [
pd.Timestamp('20130101 09:00:00'),
pd.Timestamp('20130101 09:00:02'),
pd.Timestamp('20130101 09:00:03'),
pd.Timestamp('20130101 09:01:05'),
pd.Timestamp('20130101 09:01:06'),
pd.Timestamp('20130101 09:01:07'),
pd.Timestamp('20130101 09:01:13'),
pd.Timestamp('20130101 09:01:15'),
pd.Timestamp('20130101 09:02:10'),
pd.Timestamp('20130101 09:03:40'),
pd.Timestamp('20130101 09:04:15')
]
df = pd.DataFrame({'B': [0, 1, 2, None, 4]}, time)
B
2013-01-01 09:00:00 0.0
2013-01-01 09:00:02 1.0
2013-01-01 09:00:03 2.0
2013-01-01 09:01:05 NaN
2013-01-01 09:01:06 4.0
2013-01-01 09:01:07 5.0
2013-01-01 09:01:13 6.0
2013-01-01 09:01:15 7.0
2013-01-01 09:02:10 8.0
2013-01-01 09:03:40 4.0
2013-01-01 09:04:15 1.0
如何对上述数据进行分组,每次一行的时间戳至少比前一行早一个小时,就创建一个新组。
所需输出:
G1
20130101 09:00:00
20130101 09:00:02
20130101 09:00:03
G2
20130101 09:01:05
20130101 09:01:06
20130101 09:01:07
20130101 09:01:13
20130101 09:01:15
20130101 09:02:10
G3
20130101 09:03:40
20130101 09:04:15
我可以用命令式的方式来实现这一点,我想知道pandas API是否可以自然地表达这种类型的操作。