Python 根据对dataframe列的标签引用选择下一列

Python 根据对dataframe列的标签引用选择下一列,python,pandas,dataframe,Python,Pandas,Dataframe,如果必须选择列“a”和“b”,我将执行以下操作: 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”旁边的列,而不必键入名称?实际上,我正在从excel工作表中获取数据,名称可以更改,并且可以有空格 提前谢谢 预期产量 sublist=['a','b']

如果必须选择列“a”和“b”,我将执行以下操作:

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”旁边的列,而不必键入名称?实际上,我正在从excel工作表中获取数据,名称可以更改,并且可以有空格

提前谢谢

预期产量

sublist=['a','b']

df2= df1[df1.columns.intersection(sublist)]
您可以使用它来获取
子列表的索引
,并添加
1
以获取下一列索引,然后使用:



“选择“a”和“b”旁边的列,而不必键入名称”这是什么意思?你能为这个问题添加预期的输出吗?在这种情况下,我需要列“qww12”和“hdbh”,因此需要
df2=df1.loc[:,~df1.columns.isin(子列表)]
有没有更简单的方法…
你的代码行没有做你想做的事情,所以这句话有误导性
   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
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