如何在数据帧中读取以分钟/小时为单位的时间获取销售率?



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

我尝试使用以下代码读取此数据帧,但出现错误"只能将 .dt 访问器与类似日期时间的值一起使用"

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 只是将它们用作占位符。

首先添加 HH 以便能够将其转换为熊猫时间增量:

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

然后转换为时间增量

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

如果在时间列中有日期时间 dtype,则可以执行以下操作:

s = '''Name Sales Time
Jame 603   14:59
Sam  903   34:00
Lee  756   34:55'''
df = (pd.read_csv(io.StringIO(s), 
sep='s+', 
converters={'Time':lambda x: pd.to_datetime(x, format='%M:%S')})
)

df['rate'] = df['Sales'] / (df['Time'].dt.minute + df['Time'].dt.second.div(60))

相关内容

  • 没有找到相关文章

最新更新