我有一个像这样的数据框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']
我如何获得它们?想知道为什么我的代码无法正常工作。
答案 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')