转置含日期列的DataFrame:日期索引前缀问题及格式需求咨询
解决DataFrame转置后索引带"date."前缀的问题
原因分析
转置后索引出现"date."前缀,大概率是两种情况:
- 读取数据时,pandas自动将日期列头识别为datetime类型,为避免与内置属性冲突,自动添加了"date."前缀;
- 原始数据的列名本身就带有该前缀,只是你没留意。
分步解决方案
- 确认列名情况
先打印原DataFrame的列名,明确是不是本身就带前缀:
print(df.columns)
- 清理列名(若有前缀)
如果列名确实以"date."开头,用正则替换去掉前缀:
df.columns = df.columns.str.replace('^date\.', '', regex=True)
- 正确转置得到目标结构
要实现「日期为行、城市为列」的结构,正确步骤是先把City列设为索引,再转置:
# 将City列设为索引 df.set_index('City', inplace=True) # 执行转置 df_transposed = df.T # 可选:将索引转为datetime类型,方便后续时间序列操作 df_transposed.index = pd.to_datetime(df_transposed.index)
- 若转置后索引仍有前缀,直接清理索引
如果转置后还是存在"date."前缀,直接处理索引:
df_transposed.index = df_transposed.index.str.replace('^date\.', '', regex=True) # 转为datetime类型 df_transposed.index = pd.to_datetime(df_transposed.index)
验证结果
打印转置后的DataFrame确认结构:
print(df_transposed.head())
内容的提问来源于stack exchange,提问作者Ignpl
相关产品推荐
相关产品推荐

