You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 18:54:03