使用 .loc 不一致地切片列

Slicing columns with .loc inconsistently

我有一个这样的数据框

df = pd.DataFrame({'a': [1], 'b': [1], 'c': [1], 'd':[1], 'e':[1]})
df

我想 select a,b,c,e 列加上 .loc! 我发现

l=df.loc[:, 'a':'c'].columns.to_list()
l+=['e']
df.loc[:, l]

但是有没有更方便的方法呢?喜欢

df.loc[:, ['a':'c', 'e']]

在实际数据框中,列数比此数据框中多得多。

选项 1:

df2 = df.drop('d', axis=1)

选项 2:

df2 = df.iloc[:, np.r_[0:3, 4]]

选项 3:

df2 = df.filter(regex='[^d]')

选项 4:

df2 = df[list(df.loc[:,'a':'c']) + ['e']]