如何将 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])
我有一个包含 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])