如何在Pandas中按固定时间间隔添加带编号的新分类列
Pandas实现按时间点新增分类列的方案
首先确认你的DataFrame的索引为datetime64类型,若不是先执行类型转换:
import pandas as pd df.index = pd.to_datetime(df.index)
方案1:字典映射(可读性更高,适配自定义规则调整)
创建时间点到编号的映射字典,直接映射生成新列:
# 构建小时对应编号的映射关系 hour_map = {0: 1, 6: 2, 12: 3, 18: 4} # 新增Number列 df['Number'] = df.index.hour.map(hour_map)
方案2:公式计算(代码更简洁,仅适配当前固定时间间隔规则)
当前4个时间点的小时刚好为0、6、12、18,间隔为6小时,可直接通过算术运算生成编号:
df['Number'] = df.index.hour // 6 + 1
两种方案执行后都会得到你要求的包含Value和Number两列的结果,Number列的取值仅为1、2、3、4四个分类值。
内容的提问来源于stack exchange,提问作者Ravikant Pandey
相关产品推荐
相关产品推荐

