Python 3.x 根据时间差对数据帧行进行分组

Python 3.x 根据时间差对数据帧行进行分组,python-3.x,pandas,pandas-groupby,Python 3.x,Pandas,Pandas Groupby,我想根据时间差对数据帧行进行分组 数据帧 time name day value 2019-02-05 00:22:00 A sun 55 2019-02-05 00:23:24 A sun 56 2019-02-05 00:32:00 A sun 27 2019-02-05 00:35:00 A sun 27 2019-02-05 01:15:00 A sun 29 2019-02-05 23:15:00 A sun 44 2019-02-05 23:59:00,A,sun,44 2019-0

我想根据时间差对数据帧行进行分组 数据帧

time name day value
2019-02-05 00:22:00 A sun 55
2019-02-05 00:23:24 A sun 56
2019-02-05 00:32:00 A sun 27
2019-02-05 00:35:00 A sun 27
2019-02-05 01:15:00 A sun 29
2019-02-05 23:15:00 A sun 44
2019-02-05 23:59:00,A,sun,44
2019-02-06 00:05:00 A mon 33
2019-02-06 00:25:00 A mon 22
输出

name start end value day
A   2019-02-05 00:22:00 2019-02-05 00:35:00 27 sun
A   2019-02-05 01:15:00 2019-02-05 01:15:00 29 sun
A   2019-02-05 23:15:00 2019-02-05 23:15:00 44 sun
A   2019-02-05 23:59:00 2019-02-05 23:59:00 44 sun
A   2019-02-06 00:05:00 2019-02-06 00:25:00 22 mon
解释

I want to create data frame by grouping the rows if the time difference is <30 mins and minimum value of that group

我想通过分组行来创建数据帧,如果时差使用以下代码:

df2 = df.sort_values('time').copy()
rows = []    # Container for output rows
while df2.index.size:
    t0 = df2.iloc[0].time           # "Start" time
    tEnd = t0 + pd.Timedelta('30m') # "End" time
    d0 = t0.normalize()             # Date part
    # Group of source rows: up to the "end" time and same day
    grp = df2[(df2.time <= tEnd) & (df2.time.dt.normalize() == d0)]
    # Compute the output row (and append)
    rows.append([grp.name.iloc[0], grp.time.min(), grp.time.max(),
        grp.value.min(), grp.day.iloc[0]])
    df2.drop(grp.index, inplace=True)    # Delete "processed" rows
# Create result DataFrame
res = pd.DataFrame(rows, columns=['name', 'start', 'end', 'value', 'day'])
df2=df.sort_值('time').copy()
rows=[]#输出行的容器
而df2.index.size:
t0=df2.iloc[0]。时间#“开始”时间
tEnd=t0+pd.TIMEDTA('30m')#“结束”时间
d0=t0.规格化()#日期部分
#源行组:截至“结束”时间和当天

grp=df2[(df2.time@Valdi_-Bo)。感谢您的回复。如果存在时间差异,您的输出将合并不同的日期。我已更新输入和输出。您能检查一次吗。