根据关键字Pandas DF提取列名称

时间:2018-12-18 22:32:14

标签: python python-3.x pandas

我有一个像这样的数据框df,我想从数据框中提取列名。这是我的df

index my_numbers  nums
0     648702831   9
1      26533315   8
2           366   3
3     354701058   9
4      25708239   8
5         70554   5
6       1574512   7
7          3975   4

我需要检查是否存在numbersnum,然后要提取所有这些列。

我做了以下事情,

needed_cols = []
for i in df.columns:
    if 'numbers' or 'num' in i:
        needed_cols.append(i)

我得到以下结果,

['index', 'my_numbers', 'nums']

我只需要这些列,

['my_numbers', 'nums']

我如何获得它们?想知道为什么我的代码无法正常工作。

2 个答案:

答案 0 :(得分:1)

因为'num'始终位于'numbers'中,您可以检查列中是否包含'num'吗?

例如:

df.columns[df.columns.str.contains('num')]

Index(['my_numbers', 'nums'], dtype='object')

答案 1 :(得分:1)

您可以filter您的数据框:

cols = df.filter(like='num').columns

print(cols)

Index(['my_numbers', 'nums'], dtype='object')