调用pandas.crosstab对Series做交叉表时出现重索引报错如何解决
问题解决:pd.crosstab执行时报错cannot reindex from a duplicate axis
报错原因
- 你的两个输入Series
s1和s2的索引存在重复标签(比如标签a在索引中多次出现),pd.crosstab默认会先对齐两个输入的索引,重复的索引标签会导致重索引操作失败,触发该报错。
解决方法
因为你的两个Series长度相同、对应位置的元素本身就是配对的,直接传入Series的值(不带索引)即可正常运算:
import pandas as pd s1=pd.Series(['ot','bx','bx','bx','ot','ot','med','med','bx','med'],index=['a','b','c','a','b','c','a','b','c','a']) s2=pd.Series(['adulto','adulto','idoso','adulto','jovem','jovem','adulto','jovem','jovem','adulto'],index=['a','b','c','a','b','c','a','b','c','a']) # 传入values跳过索引对齐 print(pd.crosstab(s1.values, s2.values))
运行结果
输出的交叉表如下:
col_0 adulto idoso jovem row_0 bx 2 1 1 med 2 0 1 ot 1 0 2
内容的提问来源于stack exchange,提问作者João Pedro Veiga
相关产品推荐
相关产品推荐

