2024-09-30 03:22:50 发布
网友
我有一个数据帧
customer_number purchase_time quantity 14 2007-03-01 07:06:00 10 20 2007-03-12 13:05:00 13
我试图找出上午和下午购买的总量。我将purchase_time转换为datetime
purchase_time
但是,结果是原始数据集。在
在这里你可能不需要转换,只要按字典顺序比较一下时间-
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是奇迹般的)
timedelta
你可以的
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
在这里你可能不需要转换,只要按字典顺序比较一下时间-
不过,对于额外的安全层,我建议转换为
^{pr2}$timedelta
并进行比较-这些比较仍然适用于字符串(pandas是奇迹般的)你可以的
在groupby中使用布尔数组
相关问题 更多 >
编程相关推荐