我有一个像这样的数据框。
trip_start trip_end day_of_month
2008/1/15 0:01 2008/1/15 0:35 15
2008/1/15 0:02 2008/1/15 0:08 15
2008/1/15 0:03 2008/1/15 0:19 15
2008/1/15 0:05 2008/1/15 0:16 15
2009/2/16 0:01 2009/2/16 0:35 16
2009/2/16 0:02 2009/2/16 0:08 16
2009/2/16 0:03 2009/2/16 0:19 16
2009/2/16 0:05 2009/2/16 0:16 16
...
如何在每个月的每一天找到一小时内的最大行程次数(同一天开始和结束,不必在确切时间开始)? 我试着用
month_group = data.groupby("dayofmonth")
但我不确定从哪里去。
答案 0 :(得分:1)
如果您尚未将列转换为datetime
个对象,则应首先执行此操作:
df["time_start"] = pd.to_datetime(df["trip_start"])
df["time_end"] = pd.to_datetime(df["trip_end"])
接下来,我将假设您将行程定义为在一小时内结束,如果它在一小时内结束。 (您可以将此更改为以小时为单位,只需将trip_end
更改为trip_start
,如果按照其他一些标准告诉我,我可以将其更改为
df["hour"] = df["trip_end"].dt.hour
df = df.groupby("dayofmonth")["hour"].count()