从datetime中提取时间用于大Pandas的比较

2024-09-30 03:22:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧

customer_number   purchase_time         quantity
14                2007-03-01 07:06:00   10
20                2007-03-12 13:05:00   13

我试图找出上午和下午购买的总量。我将purchase_time转换为datetime

^{pr2}$

但是,结果是原始数据集。在


Tags: 数据numberdatetime原始数据timecustomerpurchasequantity
3条回答

在这里你可能不需要转换,只要按字典顺序比较一下时间-

df[df['purchase_time'].str.split().str[1] < '12:00:00']

   customer_number        purchase_time  quantity
0               14  2007-03-01 07:06:00        10

不过,对于额外的安全层,我建议转换为timedelta并进行比较-这些比较仍然适用于字符串(pandas是奇迹般的)

^{pr2}$

你可以的

df[df['purchase_time'].dt.time < pd.to_datetime('12:00:00').time()]
Out[152]: 
   customer_number       purchase_time  quantity
0               14 2007-03-01 07:06:00        10

在groupby中使用布尔数组

df.groupby(df.purchase_time.dt.hour < 12).sum().rename(
    {True: 'Morning', False: 'Afternoon'})

               customer_number  quantity
purchase_time                           
Afternoon                   20        13
Morning                     14        10

相关问题 更多 >

    热门问题