Я пытаюсь создать в Python 'upsetplot', который просматривает агрегированные данные, основываясь на том, являются ли определенные категории True или False.
https://pypi.org/project/upsetplot/
Похоже, чтоОшибка «Слишком много индексаторов» из пакета Pandas, когда я пытаюсь построить график, используя категорию, которая не содержит как истинных, так и ложных логических значений (точно не знаю, почему?)
Но каждый раз, когда я удаляю индексы, которые этого не делаютимеют значения True и False, тогда график работает, в противном случае я возвращаю ошибку:
Файл "C: \ Users \ xxxxx \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pandas\ core \ indexing.py ", строка 220, в _has_valid_tuple повысить IndexingError ('Too many indexers') *
IndexingError: слишком много indexer
Так что мне интересно, поможет ли этоесли я смогу «форсировать» уровни True и False в индексах, даже если данные содержат только 1 из них.Я не уверен, что именно так работают индексы ...
Пример данных:
data = pd.DataFrame({'userID':['Luis', 'Mike', 'Harvey'], 'category1':[True, False, True], 'category2': [True, True, False], 'category3':[False, False, False]})
data.set_index(['category1', 'category2', 'category3'], inplace=True)
data2 = data.groupby(['category1', 'category2', 'category3']).size()
data2.index
plot(data2)
Когда я запускаю график, я получаю ошибку "слишком много индексаторов".
Когда я убираю категорию 3 из индекса, он работает нормально и строит график.
data = pd.DataFrame({'userID':['Luis', 'Mike', 'Harvey'], 'category1':[True, False, True], 'category2': [True, True, False], 'category3':[False, False, False]})
data.set_index(['category1', 'category2'], inplace=True)
data2 = data.groupby(['category1', 'category2']).size()
data2.index
plot(data2)
Интересно, что когда я изменяю категорию 3, чтобы включить True & False, он тоже работает:
data = pd.DataFrame({'userID':['Luis', 'Mike', 'Harvey'], 'category1':[True, False, True], 'category2': [True, True, False], 'category3':[True, False, False]})
data.set_index(['category1', 'category2', 'category3'], inplace=True)
data2 = data.groupby(['category1', 'category2', 'category3']).size()
data2.index
plot(data2)
Кто-нибудь имеет представление о том, что происходит и как я могу это исправить?
По сути, у меня есть 3 индекса, которые состоят только из False (как в 1-м примере кода), который бросает меняошибка «Слишком много индексаторов».
Как мне исправить это?