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

使用pandas导入CSV文件并对重复测量列完成数据透视处理

问题描述

现有一个存储矩阵测量结果的CSV文件,对应矩阵结构如下:

A B C
1
2
3 

该CSV文件的结构规则如下:

  • 前2列(Col & row)代表矩阵的坐标参数
  • 其余列代表测量配置(取值为0、1或2)

由于测量会重复执行,因此配置列会重复出现,列名序列为(0,1,2,1,0)。
示例数据集内容如下:

Col row 0   1     2    1    0 #these represent measurement setup
1   A   1   0.7   0.5  0.4  0.5
2   B   1   0.4   0.2  0.1  0.1
3   C   1   0.3   0.2  0.1  0.1

需求说明

  • 正确导入该CSV文件
  • 对数据进行透视处理,生成包含Col、row、setup、iteration、value字段的数据集

字段说明

  • setup对应测量配置值,序列为(0,1,2,1,0)
  • iteration代表单个像素(即同一Col、row组合)的测量次数,取值为1、2、3、4、5

预期输出结构

Col row setup iteration  value   
1   A   0     1          1
1   A   1     2          0.7
1   A   2     3          0.5
1   A   1     4          0.4
1   A   0     5          0.5
2   B   0     1          1
2   B   1     2          0.4
2   B   2     3          0.2
2   B   1     4          0.1
2   B   0     5          0.1
.....etc

实现方案

步骤1:导入CSV文件

import pandas as pd

# 替换为实际CSV文件路径,若CSV包含#开头的注释行,可添加comment='#'参数自动过滤
df = pd.read_csv('your_file.csv', comment='#')

步骤2:透视转换数据

# 宽表转长表,保留坐标列Col、row
df_long = df.melt(id_vars=['Col', 'row'], var_name='setup', value_name='value')

# 按坐标分组生成迭代次数编号
df_long['iteration'] = df_long.groupby(['Col', 'row']).cumcount() + 1

# 转换setup为整数类型(按需调整)
df_long['setup'] = df_long['setup'].astype(int)

# 调整列顺序得到最终结果
df_result = df_long[['Col', 'row', 'setup', 'iteration', 'value']].reset_index(drop=True)

验证输出

print(df_result.head(10))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:09:02