удаление строки данных по значению MultiIndex - PullRequest
1 голос
/ 06 марта 2019

Из DataFrame с MultiIndex логических комбинаций я хочу удалить строку, для которой ни одно из значений индекса не равно True:

T000001 T000025 
True    False   1430.0
False   True    301.0
False   False   7950.0   

Не работает обработка записей индекса как логических массивов:

df[~df.index.any()]



TypeError                                 Traceback (most recent call last)
<ipython-input-35-caeaa0a17799> in <module>
----> 1 combi.index.any()

~/anaconda3/lib/python3.6/site-packages/pandas/core/ops.py in invalid_op(self, other)
    212     def invalid_op(self, other=None):
    213         raise TypeError("cannot perform {name} with this index type: "
--> 214                         "{typ}".format(name=name, typ=type(self).__name__))
    215 
    216     invalid_op.__name__ = name

TypeError: cannot perform any with this index type: MultiIndex

1 Ответ

0 голосов
/ 06 марта 2019

Преобразовать MultiIndex в DataFrame по MultiIndex.to_frame, удалить инвертирование ~ и проверить any для строк по axis=1:

df = df[df.index.to_frame().any(axis=1)]
print (df)
T000001  T000025
True     False      1430.0
False    True        301.0
Name: a, dtype: float64
...