首页 > 解决方案 > 如何在数据框中以分钟/小时为单位读取时间以获取销售率?

问题描述

我有一个数据框,它的最小值为小时,例如 14:59,其中 60:00(最大值)为 1(小时)。

我尝试使用下面的代码读取此数据框,但出现错误“只能将 .dt 访问器与 datetimelike 值一起使用”

df['time sold'].dt.minute

我希望在阅读下面的日期后获得每分钟的销售率。我的数据是

Name Sales Time
Jame 603   14:59
Sam  903   34:00
Lee  756   34:55

有没有办法让每分钟卖出多少?

Name Sales Time    Sale Rate
Jame 603   14:59   xxxx
Sam  903   34:00   yyyy
Lee  756   34:55   zzzz

请原谅 xyz 只是将它们用作占位符。

标签: pythonpandasdataframetime

解决方案


首先添加 HH 以便能够将其转换为 pandas timedelta:

df['Time'] = '00:'+df['Time'].astype(str)

然后转换为 timedelta

df['Time'] = pd.to_timedelta(df['Time'])

然后创建一个等于每分钟销售额的新列

df['Sales Rate'] = df['Sales'] / (df['Time'].dt.total_seconds()/60)

输出:

     Sales     Time Sales Rate
Jame   603 00:14:59    40.2447
Sam    903 00:34:00    26.5588
Lee    756 00:34:55    21.6516

推荐阅读