df.duplicated()误报?

我有一个数据框,其中包含具有3级MultiIndex的2,865,044个条目


MultiIndex.levels.names = ['year', 'country', 'productcode']

我试图重塑数据框以生成宽数据框,但出现错误:


ReshapeError: Index contains duplicate entries, cannot reshape

我用过:


data[data.duplicated()]

来识别导致错误的行,但是它列出的数据似乎不包含任何重复项。


这导致我使用to_csv()导出数据框并在Stata中打开数据,并使用重复列表命令查找不包含重复项的数据集(根据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


在我的IPython会话期间,这似乎是一个奇怪的内存问题。今天早上的新实例似乎可以正常工作,并且无需对昨天的代码进行任何调整即可重塑数据!如果问题再次出现,我会进一步调试,并告知您。任何人都知道IPython会话的良好调试器吗?


胡子哥哥
浏览 306回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python