Python中如何对DataFrame数据执行转置并追加操作
实现方法
你可以直接使用Pandas的melt方法完成宽表转长表的需求,对应你的转置追加要求,示例代码如下:
- 导入依赖
import pandas as pd
- 核心转换代码
假设你的原DataFrame名为df,第一列是日期列,列名为date,其余列均为需要展开的指标列:
# 宽表转长表,保留日期列作为主键,其余列转为类别和数值 result_df = df.melt( id_vars=['date'], # 保留不动的列 var_name='类别', # 原列名转换后存到该字段 value_name='数值' # 原列对应的值转换后存到该字段 ) # 可选:按日期排序后重置索引 result_df = result_df.sort_values('date').reset_index(drop=True)
如果你的原DataFrame是行存储指标、列存储日期的结构,需要先转置再执行上述操作:
# 先转置并重置索引 df_transposed = df.T.reset_index() # 重命名转置后的第一列为日期 df_transposed.columns = ['date'] + df.index.tolist() # 再执行melt转换 result_df = df_transposed.melt(id_vars=['date'], var_name='类别', value_name='数值')
运行代码后得到的result_df就是你需要的目标格式。
内容的提问来源于stack exchange,提问作者Giampaolo Levorato
相关产品推荐
相关产品推荐

