我希望能够使用多个级别条件(通过逻辑AND连接条件)从多索引数据帧对象中删除行.
考虑以下给出的pandas dataframe 对象:
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()
但我认为必须有更好的方法…
Original: https://blog.csdn.net/weixin_35019131/article/details/115063138
Author: zhu hao
Title: dataframe去掉索引 python_python-根据级别之间的“ AND”条件删除DataFrame的多索引行…
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/678928/
转载文章受原作者版权保护。转载请注明原作者出处!