有没有办法将 24 小时时间格式转换为一天的四个类别或四个象限?
- 作者: 花开凌乱谁的侧脸
- 来源: 51数据库
- 2022-11-17
问题描述
我正在尝试将数据中的时间戳预处理为一天中的四个类别.
I am trying to pre-process timestamp in my data into four categories of the day.
这意味着我需要将对象数据类型转换为类别
This means i need to convert object data type to categories namely
早上 00:00:00 到 11:59:59
Morning for 00:00:00 to 11:59:59
下午 12:00:00 至 15:59:59
Afternoon for 12:00:00 to 15:59:59
晚上 16:00:00 至 19:59:59
Evening for 16:00:00 to 19:59:59
晚上 20:00:00 至 23:59:59
Night for 20:00:00 to 23:59:59
我的时间戳数据看起来像
my timestamp data looks like
transaction timestamp 08:26:00 08:26:00 08:26:00 08:26:00 12:26:00 12:45:00 16:26:00 16:28:00 20:28:00 20:34:00
我希望上述列的输出为
time of day Morning Morning Morning Morning Afternoon Afternoon Evening Evening Night Night
我应该如何清理这种类型的数据并将其转换为仅 4 个类别?
How shall i clean this type of data and convert it to just 4 categories?
推荐答案
您可以通过 to_timedelta 然后使用 cut:
You can convert values to timedeltas by to_timedelta and then use cut:
df['transaction timestamp'] = pd.to_timedelta(df['transaction timestamp']) #if values are python object times convert to strings #df['transaction timestamp'] = pd.to_timedelta(df['transaction timestamp'].astype(str)) b = pd.to_timedelta(['00:00:00','12:00:00','16:00:00','20:00:00', '24:00:00']) l = ['Morning','Afternoon','Evening','Night'] df['time of day'] = pd.cut(df['transaction timestamp'], bins=b, labels=l) print (df) transaction timestamp time of day 0 08:26:00 Morning 1 08:26:00 Morning 2 08:26:00 Morning 3 08:26:00 Morning 4 12:26:00 Afternoon 5 12:45:00 Afternoon 6 16:26:00 Evening 7 16:28:00 Evening 8 20:28:00 Night 9 20:34:00 Night
推荐阅读
热点文章
Discord.py(重写)on_member_update 无法正常工作
0
Discord.py 在 vc 中获取用户分钟数
0
discord.py 重写 |为我的命令出错
0
Discord.py rewrite 如何 DM 命令?
0
播放音频时,最后一部分被切断.如何解决这个问题?(discord.py)
0
在消息删除消息 Discord.py
0
如何使 discord.py 机器人私人/直接消息不是作者的人?
0
(Discord.py) 如何获取整个嵌入内容?
0
Discord bot 尽管获得了许可,但不能提及所有人
0
Discord.py discord.NotFound 异常
0
