我有一个大数据框(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)时,我得到了一个细管,它可以与熔体一起使用。
用途:
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')]