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

为何突然出现TypeError: 'int'不可下标错误?卡方检验引入后代码失效

解决 TypeError: 'int' object is not subscriptable 问题

问题场景

在Kaggle Notebook中编写可视化代码,从.csv文件读取数据绘制分布图时,持续收到错误:TypeError: 'int' object is not subscriptable,错误指向代码第2行。

报错代码

fig, ax = plt.subplots(2,2, figsize=(12,12))
sns.histplot(df['Satisfaction'], kde=True, ax = ax[0,0])
plt.ylabel("Count")
sns.histplot(df['Performance_evaluation'], kde=True, ax = ax[0,1])
sns.histplot(df['Monthly_hours'], kde=True, ax = ax[1,0])

问题原因

排查后发现,之前在卡方检验的代码中,将df这个变量名用来定义整数类型的自由度(degrees of freedom),覆盖了原本用来指代DataFrame的df变量。当后续代码执行df['Satisfaction']时,实际是在对一个整数做下标访问,因此触发了'int' object is not subscriptable的错误。

解决方法

修改卡方检验中自由度的变量名,避免和DataFrame的变量名冲突。比如把自由度变量命名为degrees_of_freedom或者chi_df,让df重新恢复为DataFrame的引用,即可解决该错误。

内容的提问来源于stack exchange,提问作者AMch

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:35:27