如何将列标题转换为整个不同的列

问题描述 投票:0回答:1

我有一个 Excel 文件,其中包含不同配置的电流值列,第一列中有电压,但其他参数位于列标题本身中。如何将这些列标题转换为不同的列

This type of data i have.

I want

python pandas excel csv openpyxl
1个回答
0
投票

代码

melt
str.extract
与正则表达式一起使用

tmp1 = df.melt('V1', value_name='I')
pat = r'^\(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', 'I', 'V2', 'T']]

    V1  I   V2  T
0   1   4   5   27
1   2   5   5   27
2   3   4   5   27
3   4   8   5   27
4   1   5   5   140
5   2   9   5   140
6   3   4   5   140
7   4   12  5   140
© www.soinside.com 2019 - 2024. All rights reserved.