pandas 每天的时间范围

pandas time range per day

我在 pandas 数据框中包含一个 gps 数据日志。我需要计算每天的 'up time',即最后记录点减去第一个记录点。这里最好的方法是什么?

                     datetime   latitude  longitude  weekday
1     2015-08-25 17:10:53.920  52.232342   0.134956        1

如果 DataFrame 被命名为 df,您可以这样做:

def uptime(series):
    return (series.max() - series.min()).total_seconds()

uptime_each_day = df.groupby(
    df.datetime.apply(lambda x: x.date())
).apply(lambda grp: uptime(grp.datetime))

你可以做到

day_groups = df.groupby(pd.Grouper(key='datetime', freq='1D'))
day_groups.datetime.max() - day_groups.datetime.min()