如何将列标题转换为一个完全不同的列

0 投票
1 回答
50 浏览
提问于 2025-04-14 18:16

我有一个Excel文件,里面有不同配置下的电流值,第一列是电压,其他参数则是在列标题里。请问我该如何把这些列标题转换成另一列呢?

输入

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)

这里输入图片描述

期望的输出

这里输入图片描述

1 个回答

0

代码

tmp1 = df.melt('V1', value_name='I')
pat = r'^I\(T=(?P<T>\d+) v2=(?P<V2>\d+)\)$'
tmp2 = tmp1.pop('variable').str.extract(pat).astype('int')
out = pd.concat([tmp1, tmp2], axis=1)[['V1', 'T', 'V2', 'I']]

输出

    V1  T   V2  I
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

撰写回答