Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用melt将多个列名作为val_变量传递?_Python_Pandas_Melt - Fatal编程技术网

Python 如何使用melt将多个列名作为val_变量传递?

Python 如何使用melt将多个列名作为val_变量传递?,python,pandas,melt,Python,Pandas,Melt,我有一个大数据框(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', 'Inten

我有一个大数据框(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:unhabable type:'list'”


我曾尝试将valvarlist放入[],但我得到了相同的错误。当我选中类型(valvarlist)时,我会得到一个tuble,它应该可以与melt一起使用。

使用
为链条件创建列名称列表:

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')]
样本

df = pd.DataFrame(1, columns=['Intensity1','iBAQ1','intensity4','intensity','ss'],
                   index=[0,1])
print (df)
   Intensity1  iBAQ1  intensity4  intensity  ss
0           1      1           1          1   1
1           1      1           1          1   1

protstack = df.columns
alvarlist = [col for col in protstack if 
                      ('Intensity' in col) or ('iBAQ' in col) or ('intensity' in col)]
print (alvarlist)
['Intensity1', 'iBAQ1', 'intensity4', 'intensity']

alvarlist = df.columns[df.columns.str.contains('Intensity|iBAQ|intensity')]
print (alvarlist)
Index(['Intensity1', 'iBAQ1', 'intensity4', 'intensity'], dtype='object')

非常感谢你。这工作非常完美,而且非常干净。
df = pd.DataFrame(1, columns=['Intensity1','iBAQ1','intensity4','intensity','ss'],
                   index=[0,1])
print (df)
   Intensity1  iBAQ1  intensity4  intensity  ss
0           1      1           1          1   1
1           1      1           1          1   1

protstack = df.columns
alvarlist = [col for col in protstack if 
                      ('Intensity' in col) or ('iBAQ' in col) or ('intensity' in col)]
print (alvarlist)
['Intensity1', 'iBAQ1', 'intensity4', 'intensity']

alvarlist = df.columns[df.columns.str.contains('Intensity|iBAQ|intensity')]
print (alvarlist)
Index(['Intensity1', 'iBAQ1', 'intensity4', 'intensity'], dtype='object')