Pandas分组计算均值时时间索引被重置的问题
解决方法
1. 先把索引转成完整的datetime类型
要是你的DataFrame索引只有时间部分(比如14:01:01),得先转成带日期的datetime64[ns]类型,不然分组的时候容易丢日期、小时、分钟的信息:
# 要是索引是时间字符串,直接转成datetime(默认会补当天的日期) df.index = pd.to_datetime(df.index) # 要是想指定特定日期,比如2024-05-20: df.index = pd.to_datetime('2024-05-20 ' + df.index.astype(str))
2. 替换已弃用的base参数(可选)
pandas 1.1.0之后base参数就被弃用了,换成offset参数来调整分组的起始偏移更靠谱:
# 按10秒间隔分组,偏移30秒,用右边界当分组标签 result = df.groupby(pd.Grouper(freq='10S', offset='30S', label='right')).mean()
3. 验证结果索引
跑完上面的代码后,result.index应该保留原始的日期时间信息(比如2024-05-20 14:01:00),不会只显示00:00:00了。要是还是有问题,直接查看df.index确认原始索引是不是真的包含完整的日期时间,别用单纯的time类型,不然肯定丢信息。
内容的提问来源于stack exchange,提问作者Nima Hojat
相关产品推荐
相关产品推荐

