Python df.duplicated()误报?

Python df.duplicated()误报?,python,pandas,Python,Pandas,我有一个数据框,它包含2865044个条目,具有3级多索引 MultiIndex.levels.names = ['year', 'country', 'productcode'] 我试图重塑数据帧以产生宽数据帧,但我得到了错误: ReshapeError: Index contains duplicate entries, cannot reshape 我使用了: data[data.duplicated()] 识别导致错误的行,但它列出的数据似乎不包含任何重复项 这导致我使用to_cs

我有一个数据框,它包含2865044个条目,具有3级多索引

MultiIndex.levels.names = ['year', 'country', 'productcode']
我试图重塑数据帧以产生宽数据帧,但我得到了错误:

ReshapeError: Index contains duplicate entries, cannot reshape
我使用了:

data[data.duplicated()]
识别导致错误的行,但它列出的数据似乎不包含任何重复项

这导致我使用to_csv()导出数据帧,并在Stata中打开数据,并使用duplicates list命令查找数据集不包含重复项(根据Stata)

排序后的csv文件中的示例:

year country productcode duplicate
1962    MYS     711       FALSE
1962    MYS     712       TRUE
1962    MYS     721       FALSE
我知道这是一个长期的想法,但什么可能导致这一点?每个索引列中的数据类型为['year':int;'country':str,'productcode':str]。熊猫是如何定义独特的群体的?有没有更好的方法列出有问题的索引行

更新: 我已尝试重置索引

temp = data.reset_index()
dup = temp[temp.duplicated(cols=['year', 'country', 'productcode'])]
我得到了一个完全不同的列表

year    country productcode
1994      HKG      9710
1994      USA      9710
1995      HKG      9710
1995      USA      9710
更新日期2[2013年6月28日]:

在我的IPython会话中,这似乎是一个奇怪的内存问题。 今天早上的新实例似乎运行良好,可以在不调整昨天代码的情况下重塑数据!如果问题再次出现,我将进行进一步调试并通知您。有人知道IPython会话的好调试器吗?

也许可以试试

cleaned = df.reset_index().drop_duplicates(df.index.names)
cleaned.set_index(df.index.names, inplace=True)
我认为索引中应该有一个
复制的
方法,目前还没有


你能试试data.index.get_duplicates()并粘贴你得到的吗?您得到的错误是索引包含重复项,而不是行。谢谢Tom。。。我还没有在索引类型上看到get_duplicates()方法。有助于了解!:)对于调试器,请签出ipdb。它在终端和QT控制台中工作得很好,我认为即将发布的IPython 1.0版本中对笔记本电脑的支持即将到来。太好了。。。谢谢汤姆,谢谢韦斯!我没想到的好方法。