You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将日期为列的时间序列宽表转换为指定布局的DataFrame?

时间序列DataFrame格式转换解决方案

问题说明

现有DataFrame以地区名称为行、日期为列,需要转换为日期为行、地区名称为列的格式。原代码混合了Python与R语法,需修正适配Python环境。

当前数据布局

Name2008-012008-02
Californiaxx
New Yorkxx

预期数据布局

dateCaliforniaNew York
2008-01xx
2008-02xx

修正后的Python代码

import pandas as pd

# 读取数据
map_df = pd.read_csv('https://raw.githubusercontent.com/GeorgeRobbin/GeorgeRobbin.github.io/main/Delinnquency_MAP.csv')

# 1. 将宽格式转为长格式(替换R语法为pandas原生方法)
melted_df = pd.melt(map_df, id_vars=['Name'], var_name='date', value_name='value')

# 2. 将长格式转为目标宽格式
target_df = melted_df.pivot(index='date', columns='Name', values='value').reset_index()

# 清理列名,匹配预期格式
target_df.columns.name = None

代码解释

  • pd.melt():把原数据中所有日期列(如2008-01)拆解为date列,保留Name作为标识列,对应数值存入value列,得到长格式中间数据。
  • pivot():以date作为行索引,Name作为列名,value作为单元格值,转换为目标宽格式。
  • reset_index():将date从索引转为普通列;columns.name = None移除列索引的名称,让最终结果和预期布局完全一致。

内容的提问来源于stack exchange,提问作者user20901436

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 03:40:18