如何将 pandas 数据框过滤到 select 列列表

How to filter pandas dataframe to select list of column

我有一个包含 100 列的数据框,我想要 select 变量列表

ID           A                  B                   C
    0  day1  day10  Δday   day1 day10  Δday    day1 day10  Δday
1   1  1.0   2.0    1.0    1.5  2.5    1.0     3.0  2.0    -1.0
2   2  3.0   5.0    2.0    1.0  2.5    1.5     3.0  5.0     2.0
3   3  2.5   3.5    1.0    1.5  2.9    1.4     3.5  4.0     0.5
............................................................
............................................................
df.columns

Index(['A', 'Unnamed: 1', 'Unnamed: 2', 'B', 'Unnamed: 4', 'Unnamed: 5', 'C','Unnamed: 7', 'Unnamed: 8'],
      dtype='object')

我如何过滤应该产生如下输出:

A      B      C
Δday   Δday   Δday
1.0    1.0    -1.0
2.0    1.5     2.0
1.0    1.4     0.5

我查看了 Pandas' 文档并尝试过滤正则表达式、iloc 但没有成功。

尝试 slice(None) 到 select 第一级的任何列:

>>> df.loc[:, (slice(None), 'Δday')]

     A    B    C
  Δday Δday Δday
0  1.0  1.0 -1.0
1  2.0  1.5  2.0
2  1.0  1.4  0.5

了解更多:Using slicers

更新

Tried to applied and getting TypeError: unhashable type: 'slice'

你的问题是因为你没有正确使用read_excel。您的第二行不是 header 列,而是简单的一行。尝试指定 header:

df = pd.read_excel('data.xlsx', ..., header=[0, 1])