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

如何用Python/Pandas将CSV列头日期转为日期列并生成value列

用Pandas将日期作为列头的CSV转换为date/value长格式

直接用Pandas的melt()函数就能搞定宽格式到长格式的转换,这是处理这类需求的标准方法。以下是具体步骤和代码示例:

假设原始CSV结构(宽格式):

第一列可能是无关的标识列(比如"指标"),其余列头都是日期,单元格对应日期的数值:

指标,2023-01-01,2023-01-02,2023-01-03
数值,150,220,180

转换代码:

import pandas as pd

# 读取原始CSV
df = pd.read_csv("your_input_file.csv")

# 将日期列头转为date列,单元格值转为value列
# id_vars指定保留的非日期列(如果没有可以去掉这个参数)
df_long = df.melt(
    id_vars=["指标"],  # 如果没有标识列,直接删除这一行
    var_name="date",
    value_name="value"
)

# 可选:移除不需要的标识列(如果有的话)
df_long = df_long.drop("指标", axis=1)

# 可选:将date列转换为datetime类型,方便后续日期操作
df_long["date"] = pd.to_datetime(df_long["date"])

# 保存为目标格式的CSV
df_long.to_csv("output_file.csv", index=False)

无额外标识列的情况:

如果你的原始CSV里所有列头都是日期(没有第一列标识),代码更简洁:

import pandas as pd

df = pd.read_csv("input.csv")
df_long = df.melt(var_name="date", value_name="value")
df_long["date"] = pd.to_datetime(df_long["date"])
df_long.to_csv("output.csv", index=False)

转换后目标格式:

date,value
2023-01-01,150
2023-01-02,220
2023-01-03,180

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:25:31