我正在尝试取消Pandas数据帧中的stack()数据,但我一直收到这个错误,我不知道为什么。这是我目前为止的代码和我的数据样本。我试图修复它的方法是删除voteId不是数字的所有行,这对我的实际数据集不起作用。当我部署代码时,在Anaconda笔记本(我正在开发的地方)和我的产品env中都会发生这种情况。在
我不知道如何在我的示例代码中重现错误。。。可能是因为像我在示例中那样实例化数据帧时不存在的类型转换问题?在
#dataset simulate likely input
# d = {'vote': [100, 50,1,23,55,67,89,44],
# 'vote2': [10, 2,18,26,77,99,9,40],
# 'ballot1': ['a','b','a','a','b','a','c','c'],
# 'voteId':[1,2,3,4,5,'aaa',7,'NaN']}
# df1=pd.DataFrame(d)
#########################################################
df1=df1.drop_duplicates(['voteId','ballot1'],keep='last')
s=df1[:10].set_index(['voteId','ballot1'],verify_integrity=True).unstack()
s.columns=s.columns.map('(ballot1={0[1]}){0[0]}'.format)
dflw=pd.DataFrame(s)
完整错误消息/堆栈跟踪:
^{pr2}$
要获取触发异常的实际数据,请添加额外的调试信息
向
class BlockManager()
添加行您将数据:
^{pr2}$您将看到以下数据:
我用另一个例子触发了一个异常:
带调试信息
我用你的示例代码做了一些测试。在
观察1:
这是一个关于该问题的最小可验证代码:
假设一下,这些数据可以是我稍微修改一下后发现的(在这个例子的基础上):
^{pr2}$观察2:
我还制作了另一个数据集(可能更接近您的数据集):
有趣的是,ballot1和voteId的顺序与你的情况不同,如果它们的顺序与你的情况相同,就可以了。在
我的观察是,
ballot1
是一个真正需要cap失败的索引,并且一个投票序列之间需要一个共享值。在讨论:
如果可能的话,ballot1和voteId(索引)都只有整数,但是ballot1也有一些异常,这取决于投票列中的数据,这个错误可能会引起。在
当索引列值有间隙时,将引发断言,它可能与您的df1[:10]命令有关,例如Zev对Github上的问题进行了注释。在
在我的例子中,虽然Github建议的解决方法没有效果。最好的办法是去掉数据中的None值,因为数据已经处于良好的状态。在
旁注:
我不知道
ballot1
数据是否允许有整数,但至少如果允许的话,就存在这种情况,在这种情况下可能会发生错误。这些是否有用取决于你的情况,你在写问题的时候还不清楚。现在你至少有一些建议可以尝试。相关问题 更多 >
编程相关推荐