如何使用pandas将CSV时间序列数据的起始日期修改为指定日期
解决方案
核心思路是计算原始日期和原始起始日的时间差,将时间差整体叠加到自定义的新起始日上,即可保留原有时间间隔不变,完成日期范围的整体偏移。
修改后完整代码
import pandas as pd # 此处startdate为你自定义的起始日期字符串,date为数据中日期列的列名 startdate = pd.to_datetime(startdate, dayfirst=True) data[date] = pd.to_datetime(data[date], dayfirst=True) # 计算原始序列起始日期 original_start = data[date].min() # 每个日期叠加固定时间差完成偏移 data[date] = startdate + (data[date] - original_start) data = data.set_index(date) data = data.astype('float')
说明
- 该方法不限制原始数据的时间粒度,小时、天、周级数据都可以正常偏移
- 新增了
dayfirst=True参数适配你输入的日/月/年格式日期,避免解析错误 - 按示例输入测试时,指定startdate为2018-08-26,输出结果完全匹配你给出的预期效果
内容的提问来源于stack exchange,提问作者lak
相关产品推荐
相关产品推荐

