如何使用熔体将多个列名作为val_vars传递?

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

我有一个大数据框(367行×342列),其中多列的名称具有相同的前缀。我正在尝试使我们的代码更易于使用。

当前代码:

                   value_vars = "'Intensity 01_1',
 'Intensity 01_2',
 'Intensity 01_3',
 'Intensity 03_1',
 'Intensity 03_2',
 'Intensity 03_3',
 'Intensity 04_1',
 'Intensity 04_2',
 'Intensity 04_3',
 'Intensity 05_1',
 'Intensity 05_2',
 'Intensity 05_3',
 'Intensity 06_1',
 'Intensity 06_2',
 'Intensity 06_3',,
                    var_name="SampleMeas", value_name="SpecInt"
                               )

这是我要使用的内容,但出现错误“ TypeError:不可散列的类型:'list'“

valvarlist = [col for col in protstack if 'Intensity' in col], 
[col for col in protstack if 'iBAQ' in col], 
[col for col in protstack if 'LFQ intensity' in col]
#print(valvarlist)

test = pd.melt(protstack, id_vars="Majority protein IDs", 
                   value_vars = valvarlist,
                    var_name="SampleMeas", value_name="SpecInt"
                               )

我曾尝试将valvarlist放入[],但遇到相同的错误。当我检查类型(valvarlist)时,我得到了一个细管,它可以与熔体一起使用。

python pandas melt
1个回答
0
投票

用途:

alvarlist = [col for col in protstack if 
                      ('Intensity' in col) or ('iBAQ' in col) or ('intensity' in col)]

或:

alvarlist = df.columns[df.columns.str.contains('Intensity|iBAQ|intensity')]
© www.soinside.com 2019 - 2024. All rights reserved.