在pandas的unstack时报ValueError: duplicate entries 错误

…衆ロ難τιáo~ 提交于 2020-04-08 12:01:28

pandas是python中用于数据分析和处理的一个基于numpy的基本库工具,是从事python语言数据领域的一个基本入门工具,常见用途有:
a提供高级的数据结构和相当丰富的数据操作API
b提高了对复杂矩阵运算的效率(这里的矩阵,目前可简单视作Excel数据表,自己脑补一下)
c提供了数据清洗和处理功能
d帮助数据挖掘挖掘分析

回归正题:代码如下(环境:anaconda3+python3)
在pandas的unstack时报ValueError: duplicate entries 错误
在pandas的unstack时报ValueError: duplicate entries 错误
运行代码时:
在pandas的unstack时报ValueError: duplicate entries 错误

pandas两个重要的数据结构:Series和DataFrame
对象方法unstack(): Series对象的API,用于将Series的数据类型转DataFrame类型,因为DataFrame提供的数据操作API远远多于Series。(Series视作一维,DataFrame视作高维数据,类比一维数组和高维度数组)
用unstack操作的数据必须唯一标识,而打印obj1如下:
在pandas的unstack时报ValueError: duplicate entries 错误
存在重复,unstack不能唯一区分,故转换失败报错ValueError: Index contains duplicate entries, cannot reshape, 解决方式:修改字母索引名或者数字索引,只要能够唯一标识即可,如将重复的1改为2(这里不能为3)或改为字母在pandas的unstack时报ValueError: duplicate entries 错误
将层次索引的外层索引(这里指a,b,c)作为DataFrame的行索引,内层索引(1,2,3....)作为列索引.结果打印如下:
在pandas的unstack时报ValueError: duplicate entries 错误

思考一下: 既然Series转DataFrame,可使用unstack()[解包], 那DataFrame转Series用什么方法?

在pandas的unstack时报ValueError: duplicate entries 错误
答案: 使用stack() [打包]

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!