Pandas数据帧列选择

时间:2016-04-08 00:22:52

标签: python pandas

我正在使用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]

我是新手,所以这可能很简单。这是不起作用的原因,因为我不正确地混合列表?

感谢。

1 个答案:

答案 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])')