如何在Pandas中为移位后的数据自动追加对应日期行?
解决DataFrame移位后自动追加日期行的方案
1. 规范日期索引
先把日期列转为datetime类型并设为索引,方便后续匹配时间频率:
import pandas as pd # 转换日期格式并设置为索引 econ_data['DATE'] = pd.to_datetime(econ_data['DATE']) econ_data = econ_data.set_index('DATE')
2. 自动生成后续4个周期的日期
让pandas自动识别现有数据的时间频率,再生成对应后续日期:
# 识别数据的时间频率(比如你的数据是季度频率) data_freq = econ_data.index.inferred_freq # 生成现有数据之后的4个周期日期(跳过最后一个现有日期,取后面4个) future_dates = pd.date_range(start=econ_data.index[-1], periods=5, freq=data_freq)[1:]
3. 追加空行到原DataFrame
创建包含后续日期的空行,合并到原数据中:
# 生成空行,YoY % Change列先设为NaN future_rows = pd.DataFrame(index=future_dates, columns=['YoY % Change']) # 合并原数据和新增空行 econ_data = pd.concat([econ_data, future_rows])
4. 重新执行移位操作
现在再运行移位代码,原数据最后4个YoY % Change值就会自动填充到新增行的YoY_Shifted列:
econ_data['YoY_Shifted'] = econ_data['YoY % Change'].shift(periods=4)
这套逻辑会根据原数据的时间频率自动生成对应日期,不用手动追加,完美保留移位后的所有数据点。
内容的提问来源于stack exchange,提问作者Zachary Marx
相关产品推荐
相关产品推荐

