如何在Pandas DataFrame中将奇数小时时间戳规整为偶数小时
解决方案
你可以通过pandas的时间处理方法快速实现需求,两种常用实现方式如下:
方法1:直接用时间向上取整(最简洁)
该方法利用pandas内置的时间间隔取整规则,刚好匹配你需要的2小时间隔对齐逻辑:
import pandas as pd # 第一步:确保Time索引为datetime格式,若读入时已经是datetime类型可跳过这一步 df.index = pd.to_datetime(df.index) # 第二步:将时间索引向上取整到2小时间隔 df.index = df.index.ceil('2H')
方法2:手动判断小时奇偶(更灵活可控)
如果需要自定义调整规则,可以显式判断小时的奇偶性再做调整:
import pandas as pd df.index = pd.to_datetime(df.index) # 偶数小时保持不变,奇数小时加1小时进位到下一个偶数点 df.index = df.index.where( df.index.hour % 2 == 0, df.index + pd.Timedelta(hours=1) )
可选:处理重复索引
如果调整后出现相同的时间索引,可以根据业务需求做聚合处理,示例如下:
# 示例:对相同时间的Values字段求和 df = df.groupby(level=0).sum()
内容的提问来源于stack exchange,提问作者Tobitor
相关产品推荐
相关产品推荐

