我正在尝试在Python中创建一个'upsetplot',它根据某些类别是True还是False来查看聚合数据。
https://pypi.org/project/upsetplot/
当我尝试使用不包含True和False布尔值(不确定确切原因)的类别进行绘图时,似乎从Pandas软件包中引发了“索引过多”错误
但是无论何时我删除没有True和False的索引,那么绘图就可以了,否则我会返回错误:
文件 “ C:\ Users \ xxxxx \ AppData \ Local \ Continuum \ anaconda3 \ lib \ site-packages \ pandas \ core \ indexing.py”, _has_valid_tuple中的第220行 引发IndexingError('索引过多')
IndexingError:索引器太多
所以我想知道是否可以强制在索引中使用True和False级别,即使数据仅包含其中之一也是如此。我不确定这是否是索引的工作方式...
样本数据:
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组成的索引(例如在第一个代码示例中),这使我抛出“索引过多”错误。
我该如何解决?