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

如何从宽幅Pandas DataFrame提取每6列并转为纵向目标表

宽表转纵向表的实现方法

直接用Pandas的切片、重命名和合并操作就能搞定,步骤如下:

  1. 先准备好目标列名,用列表临时存储每组处理后的数据(避免循环中反复合并的性能损耗)
  2. 按每6列一组循环提取原数据,重命名列后加入临时列表
  3. 最后一次性合并所有组数据生成目标表

具体代码

import pandas as pd

# 导入原数据,如果原CSV的表头无效需要跳过,记得加header=None
df = pd.read_csv("groups.csv")

# 定义目标表列名
target_columns = ['GroupA', 'GroupB', 'GroupC','GroupD', 'GroupE', 'GroupF']

# 计算总组数:606列刚好分成101组
total_groups = df.shape[1] // 6

# 初始化临时列表存储每组处理后的数据
temp_data_list = []

for i in range(total_groups):
    # 提取当前组的6列数据
    current_group = df.iloc[:, i*6 : (i+1)*6]
    # 重命名为目标列名
    current_group.columns = target_columns
    # 将当前组加入临时列表
    temp_data_list.append(current_group)

# 一次性合并所有组,生成最终纵向表
df_target = pd.concat(temp_data_list, ignore_index=True)

补充说明

  • 如果你说的“跳过原表头”是指原CSV的第一行是无效表头,导入时要修改为df = pd.read_csv("groups.csv", header=None),避免把表头误当作数据行处理。
  • 用列表收集临时数据再合并,比循环中反复执行pd.concat的效率高很多,尤其当原数据行数较多时更明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:41:13