寻找在pandas数据框架中出现次数最多的时间点

1 人关注

我有一个数据框架,用来存储订单和收到订单的时间。

order_id   time_placed
A1         2019-08-01 06:09:55.670712
A2         2019-08-01 06:09:55.687803
A3         2019-08-01 07:27:21.236759
A4         2019-08-01 07:27:21.256607
A5         2019-08-01 07:27:21.272751

有可能有订单,但数据框架包含了本月的订单。我想知道我在这个月里哪个小时收到的订单最多。我试着创建一个这样的系列。

  orders = pd.Series(order_list['order_id'].tolist(), index=order_list['time_placed'])

这样,我就可以像这样按小时分组

orders.groupby(orders.index.hour)

但这没有意义,因为我想得到我收到最多订单的那个小时。我怎样才能实现这一点呢?

python
pandas
dataframe
timedelta
Wasswa Samuel
Wasswa Samuel
发布于 2019-09-04
1 个回答
jezrael
jezrael
发布于 2019-09-04
已采纳
0 人赞同

我想得到我收到最多订单的那个小时

Here is nice use Series.value_counts ,因为默认情况下是按计数排序。

df['time_placed'] = pd.to_datetime(df['time_placed'])
s = df.time_placed.dt.hour.value_counts()
print (s)
7    3
6    2
Name: time_placed, dtype: int64

因此,对于顶级小时,选择第一个索引值。

h = s.index[0]
print (h)

而对于最高值,选择Series的第一个值。