代码之家  ›  专栏  ›  技术社区  ›  user9431057

基于关键字提取列名

  •  1
  • user9431057  · 技术社区  · 7 年前

    我有一个数据框 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
    

    numbers num 现在,然后我要提取所有这些列。

    我做了以下几件事,

    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 回复  |  直到 7 年前
        1
  •  1
  •   johnchase    7 年前

    因为 'num' 'numbers' 你能检查一列是否包含 ?

    df.columns[df.columns.str.contains('num')]
    
    Index(['my_numbers', 'nums'], dtype='object')
    
        2
  •  1
  •   jpp    7 年前

    你可以 filter 您的数据帧:

    cols = df.filter(like='num').columns
    
    print(cols)
    
    Index(['my_numbers', 'nums'], dtype='object')