如何在Python中从Time Occurred列提取小时并生成小时列?
从整数中提取小时的解决方案
从常见的整数时间格式场景出发,给你两种针对性的解决方法:
场景1:整数为HHMM格式(如0915代表9点15分、2340代表23点40分)
直接通过整除运算提取小时部分:
import pandas as pd # 假设数据列名为'time_col',替换成你实际的列名 df['hour'] = df['time_col'] // 100
场景2:整数为Unix时间戳(秒/毫秒级)
如果之前用pd.DatetimeIndex没成功,大概率是没指定时间戳的单位,正确的处理方式如下:
import pandas as pd # 处理秒级时间戳(比如1699996800对应2023-11-14 00:00:00) df['datetime'] = pd.to_datetime(df['timestamp_col'], unit='s') # 如果是毫秒级时间戳,把unit参数改成'ms'即可 # df['datetime'] = pd.to_datetime(df['timestamp_col'], unit='ms') # 提取小时 df['hour'] = df['datetime'].dt.hour
示例验证
假设你的数据如下:
| time_data |
|---|
| 0725 |
| 1530 |
| 2200 |
用场景1的方法处理后,hour列会得到[7, 15, 22];如果是秒级时间戳1699996800,场景2处理后提取的小时为0。
内容的提问来源于stack exchange,提问作者Jack Ruggiero
相关产品推荐
相关产品推荐

