我正在使用Pandas从数据框olddf中选择列。我们假设变量名称是' a'' b'' c',' starswith1',' startswith2',' startswith3',...,' startswith10'。
我的方法是创建一个具有共同起始值的所有变量的列表。
filter_col = [col for col in list(health) if col.startswith('startswith')]
我想按名称选择该列表中的列以及其他列,因此我不必全部输入。但是,这不起作用:
newdf = olddf['a','b',filter_col]
这也不是:
newdf = olddf[['a','b'],filter_col]
我是新手,所以这可能很简单。这是不起作用的原因,因为我不正确地混合列表?
感谢。
答案 0 :(得分:2)
使用
newdf = olddf[['a','b']+filter_col]
因为添加列表会将它们连接起来:
In [264]: ['a', 'b'] + ['startswith1']
Out[264]: ['a', 'b', 'startswith1']
或者,您可以使用the filter
method:
newdf = olddf.filter(regex=r'^(startswith|[ab])')