Python:Pandas gropper()函数时间戳选择

Python:Pandas gropper()函数时间戳选择,python,pandas,Python,Pandas,以下是示例数据: | group | unix_time | | 1 | 1565938335 | # 6:52:15 AM | 1 | 1565938350 | # 6:52:30 AM | 1 | 1565938390 | # 6:53:10 AM 这是代码 df['datetime'] = pd.to_datetime(df['unix_time'], unit='s') #convert unix time to datet

以下是示例数据:

|  group |   unix_time |   
|    1   |  1565938335 |   # 6:52:15 AM
|    1   |  1565938350 |   # 6:52:30 AM
|    1   |  1565938390 |   # 6:53:10 AM
这是代码

df['datetime'] = pd.to_datetime(df['unix_time'], unit='s')  #convert unix time to datetime
for g, t in df.groupby(['group', pd.Grouper(freq='60s', key='datetime')]):
    print(g, t)
上述代码将数据分为两组:

第1组:第1行和第2行 第2组:第3行 原因是,在Grouper函数中,freq='60s'将从第6:52:00、6:53:00分钟开始计算,而不是从第6:52:15分钟开始计算。Grouper使用默认时间戳:

timestamp 6:52:00
timpstamp 6:53:00
但是,我想把它们放在同一组中,只要时差在60秒以内,上午6:52:15和上午6:53:10在60秒以内


我读过石斑鱼手册,但似乎没有这样的选择。如何修改代码?

我的选择是使用熊猫的时间索引

=^^=

import pandas as pd

df = pd.DataFrame({'group': [1,1,1,1], "time": [1565938335, 1565938350, 1565938394, 1565938395]})
df['datetime'] = pd.to_datetime(df['time'], unit='s')
df.index = df['datetime']
print(df)

for item in df['datetime'].resample('60s', kind='period'):
    print(item)
输入数据:

                     group        time            datetime
datetime                                                  
2019-08-16 06:52:15      1  1565938335 2019-08-16 06:52:15
2019-08-16 06:52:30      1  1565938350 2019-08-16 06:52:30
2019-08-16 06:53:14      1  1565938394 2019-08-16 06:53:14
2019-08-16 06:53:15      1  1565938395 2019-08-16 06:53:15
输出:

(Period('2019-08-16 06:52:15', '60S'), datetime
2019-08-16 06:52:15   2019-08-16 06:52:15
2019-08-16 06:52:30   2019-08-16 06:52:30
2019-08-16 06:53:14   2019-08-16 06:53:14
Name: datetime, dtype: datetime64[ns])

(Period('2019-08-16 06:53:15', '60S'), datetime
2019-08-16 06:53:15   2019-08-16 06:53:15
Name: datetime, dtype: datetime64[ns])

如何确定其余数据的开始时间?@zaraki:例如,假设第4行的时间仍然属于第1组,晚于6:53:15AM,那么它将成为新的开始时间。换句话说,第1-3行是第1.1组,第4行是第1.2组