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

如何将Excel/Pandas中的列标题转换为独立数据列?

解决方案

要实现将包含配置参数的列标题拆分独立数据列的需求,可以通过Pandas的数据重塑和字符串提取完成,具体步骤如下:

步骤1:导入数据并查看初始结构

先加载示例数据,确认初始DataFrame的结构:

import pandas as pd
data1 = {'V1': [1, 2, 3, 4], 
         'I(T=27 v2=5)': [4, 5, 4, 8], 
         'I(T=140 v2=5)': [5, 9, 4, 12]}

df = pd.DataFrame(data1)
print(df)

输出初始结构:

V1  I(T=27 v2=5)  I(T=140 v2=5)
0   1             4              5
1   2             5              9
2   3             4              4
3   4             8             12

步骤2:将宽表转为窄表(数据重塑)

使用pd.melt函数,把所有电流列合并为两列:config(存储原列标题的配置信息)和current(存储对应电流值),保留V1作为关联的电压列:

melted_df = df.melt(id_vars='V1', var_name='config', value_name='current')
print(melted_df)

输出结果:

V1         config  current
0   1  I(T=27 v2=5)        4
1   2  I(T=27 v2=5)        5
2   3  I(T=27 v2=5)        4
3   4  I(T=27 v2=5)        8
4   1  I(T=140 v2=5)       5
5   2  I(T=140 v2=5)       9
6   3  I(T=140 v2=5)       4
7   4  I(T=140 v2=5)      12

步骤3:从配置字符串中提取参数

通过正则表达式,从config列中提取T和v2的数值,生成独立的数据列:

# 提取T的值
melted_df['T'] = melted_df['config'].str.extract(r'T=(\d+)').astype(int)
# 提取v2的值
melted_df['v2'] = melted_df['config'].str.extract(r'v2=(\d+)').astype(int)

步骤4:清理并整理最终数据

删除不需要的config列,调整列的顺序:

final_df = melted_df.drop('config', axis=1)[['V1', 'T', 'v2', 'current']]
print(final_df)

最终输出结果:

V1    T  v2  current
0   1   27   5        4
1   2   27   5        5
2   3   27   5        4
3   4   27   5        8
4   1  140   5        5
5   2  140   5        9
6   3  140   5        4
7   4  140   5       12

扩展:处理真实Excel文件

如果是处理本地Excel文件,只需将初始数据加载替换为:

df = pd.read_excel('你的文件路径.xlsx')

后续步骤和上述示例完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:12:44