我们可以使用 Pand
as
的多重索引来标识具有多级列头的列。以下是一个示例数据集:
import pandas as pd
data = {
('Group A', 'Item 1'): [1, 2, 3],
('Group A', 'Item 2'): [4, 5, 6],
('Group B', 'Item 1'): [7, 8, 9],
('Group B', 'Item 2'): [10, 11, 12]
df = pd.DataFrame(data, index=['Row 1', 'Row 2', 'Row 3'])
print(df)
Group A Group B
Item 1 Item 2 Item 1 Item 2
Row 1 1 4 7 10
Row 2 2 5 8 11
Row 3 3 6 9 12
现在,如果我们想筛选“Group A”中的“Item 1”列,可以使用以下代码:
filtered_df = df['Group A']['Item 1']
print(filtered_df)
Row 1 1
Row 2 2
Row 3 3
Name: Item 1, dtype: int64
这将返回一个 Series 对象,其中包含名为“Item 1”的列中的所有行数据,而其他列将被删除。
如果我们想要保留多个列,我们可以使用以下代码:
filtered_df = df.loc[:, [('Group A', 'Item 1'), ('Group B', 'Item 2')]]
print(filtered_df)
Group A Group B
Item 1 Item 2
Row 1 1 10
Row 2 2 11
Row 3 3 12
这将返回一个 DataFrame,其中包含名为“Group A”中的“Item 1”列和名为“Group B”中的“Item 2”列中的所有行数据。
我们也可以使用其他方式和逻辑组合多重索引,以快速筛选和操作复杂的多级列头数据。