import pandas as pd, numpy as np
df1 = pd.DataFrame(np.random.randint(0,100,size=(10, 4)), columns=['a','qww12','b','hdbh'])
如果必须选择列“ a”和“ b”,请执行以下操作:
sublist=['a','b']
df2= df1[df1.columns.intersection(sublist)]
是否有一种更简单的方法来选择“ a”和“ b”旁边的列而无需键入名称?实际上,我是从excel工作表中获取数据的,名称可能会更改,并且可能会有空格。
谢谢。
预期产量
qww12 hdbh
0 18 86
1 84 67
2 23 45
3 60 15
4 82 60
5 84 75
6 24 23
7 34 79
8 4 45
9 2 82
答案 0 :(得分:2)
为此,您可以使用get_indexer()
来获取sublist
的索引,并添加1
以获取下一个列索引,然后使用df.iloc[]
:
df1.iloc[:,df1.columns.get_indexer(sublist)+1]
qww12 hdbh
0 48 91
1 86 67
2 21 98
3 11 94
4 9 14
5 70 54
6 38 61
7 99 65
8 16 86
9 15 40