要删除多级pandas DataFrame中的行,可以使用boolean indexing和drop()方法的组合。下面是一个示例代码:
import pandas as pd
# 创建多级pandas DataFrame
data = {'A': [1, 2, 3, 4, 5],
'B': [6, 7, 8, 9, 10]}
index = pd.MultiIndex.from_tuples([('Group1', 'Subgroup1'),
('Group1', 'Subgroup2'),
('Group2', 'Subgroup1'),
('Group2', 'Subgroup2'),
('Group3', 'Subgroup1')])
df = pd.DataFrame(data, index=index)
print("原始DataFrame:")
print(df)
# 定义要删除的行的级别
level1 = 'Group2'
level2 = 'Subgroup1'
# 使用boolean indexing和drop()方法删除行
df = df[~((df.index.get_level_values(0) == level1) & (df.index.get_level_values(1) == level2))]
df = df.dropna()
print("\n删除后的DataFrame:")
print(df)
输出:
原始DataFrame:
A B
Group1 Subgroup1 1 6
Subgroup2 2 7
Group2 Subgroup1 3 8
Subgroup2 4 9
Group3 Subgroup1 5 10
删除后的DataFrame:
A B
Group1 Subgroup1 1 6
Subgroup2 2 7
Group2 Subgroup2 4 9
Group3 Subgroup1 5 10
在上面的示例中,原始的多级pandas DataFrame包含三个级别的索引,使用boolean indexing选择要删除的行,并使用drop()方法删除这些行。最后,打印删除后的DataFrame。
下一篇:不使用循环从列表中计算子总和