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

按每2列重塑DataFrame:将合并排序后的宽表转换为长表

解决方案

原始数据与合并结果

初始数据集 df

XY
5.26.5
3.37.6

初始数据集 df_year

XY
20142014
20152015

合并并排序列的代码

import pandas as pd

df_all_cols = pd.concat([df, df_year], axis=1)
sorted_columns = sorted(df_all_cols.columns)
df_all_cols_sort = df_all_cols[sorted_columns]

合并排序后的结果

XXYY
5.220146.52014
3.320157.62015

转换为目标格式的方法

针对每个变量(X、Y)单独提取对应列,重命名后添加变量标记,最后合并所有结果即可:

# 存储各变量处理结果的列表
groups = []

# 遍历X、Y两个变量
for var in ['X', 'Y']:
    # 提取当前变量的两列,重命名为name和year
    temp_df = df_all_cols_sort[[var, var]]
    temp_df.columns = ['name', 'year']
    # 添加Variable列标记当前变量
    temp_df['Variable'] = var
    groups.append(temp_df)

# 合并所有变量的结果,重置索引
final_df = pd.concat(groups, ignore_index=True)

最终结果

nameyearVariable
5.22014X
3.32015X
6.52014Y
7.62015Y

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:25:39