【发布时间】:2016-05-09 11:20:25
【问题描述】:
我希望能够使用多级标准(使用逻辑 AND 连接标准)从多索引数据框对象中删除行。
考虑以下给出的 pandas 数据框对象:
import pandas as pd
df = pd.DataFrame(data = [[1,'x'],[2,'x'],[1,'y'],[2,'y']],
index=pd.MultiIndex(levels=[['A','B'],['a','b']],
labels=[[0,1,0,1],[0,1,1,0]],
names=['idx0','idx1']))
print(df) 输出:
0 1
idx0 idx1
A a 1 x
B b 2 x
A b 1 y
B a 2 y
我希望消除'idx0'=='A' 和 'idx1'=='a'所在的行,所以最终结果是:
0 1
idx0 idx1
B b 2 x
a 2 y
A b 1 y
在我看来,这似乎无法使用 df.drop() 方法完成。给出正确结果的“迂回”方式是:
df = pd.concat([df.drop(labels='A',level=0),df.drop(labels='a',level=1)])
df = df.drop_duplicates()
但我认为必须有更好的方法......
【问题讨论】:
标签: python pandas multi-index