使用researchpy的summary_cat函数触发KeyError: ['Outcome'] not in index错误
解决researchpy.summary_cat()触发KeyError: ['Outcome'] not in index的问题
错误原因
researchpy的summary_cat()函数若未明确指定要分析的分类变量,会默认尝试查找名为Outcome的列作为分析对象,而seaborn的tips数据集不存在该列,因此触发KeyError。
正确调用方式
1. 基础调用(单独分析分类变量)
直接传入包含目标分类变量的DataFrame,或通过vars参数指定变量名:
import seaborn as sns import researchpy as rp # 加载数据集 tips = sns.load_dataset('tips') # 方式一:传入筛选后的分类变量DataFrame cat_summary = rp.summary_cat(tips[['sex', 'smoker', 'day']]) print(cat_summary) # 方式二:通过vars参数指定变量 cat_summary = rp.summary_cat(data=tips, vars=['sex', 'smoker', 'day']) print(cat_summary)
2. 分组分析分类变量
如果需要按某个变量(比如time)分组分析分类变量,可添加by参数:
cat_summary_grouped = rp.summary_cat(data=tips, vars=['sex', 'smoker', 'day'], by='time') print(cat_summary_grouped)
注意事项
- 确保传入的变量名完全匹配数据集中的列名,避免拼写错误
- 不要省略要分析的变量列表,防止函数触发默认的
Outcome列查找逻辑
内容的提问来源于stack exchange,提问作者Neslişah Öztürk
相关产品推荐
相关产品推荐

