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
您可以使用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