如何在无Positive分类时补0避免KeyError?Pandas数据处理
Pandas交叉表处理单一分类数据时的KeyError解决方法
问题场景
我手头有一份企业环境影响数据集,已创建Impact_Category列:总环境影响值为正则标记为Positive,为负则标记为Negative。
按国家分析企业数据时,若某国同时存在两类企业,执行以下代码可正常生成统计表格:
usa_company_impcat = pd.crosstab(usa_company_filtered['Year'], usa_company_filtered['Impact_Category']) usa_company_impcat['Total_Count'] = usa_company_impcat.loc[:,['Negative', 'Positive']].sum(axis = 1) # 添加总计列 usa_company_impcat = usa_company_impcat.rename_axis("Year").reset_index() # 重置Year列格式 usa_company_impcat
但当某国仅存在Negative类企业时,执行上述代码会报错:
KeyError: "['Positive'] not in index"
导致无法生成所需图表。
解决方法
通过新增值为0的Positive列即可修复问题,示例代码如下:
ROK_ind_impcat = pd.crosstab(ROK_industry['Year'], ROK_industry['Impact_Category']) ROK_ind_impcat['Positive'] = 0 # 新增Positive列,值设为0,适配后续图表需求 ROK_ind_impcat['Total_Count'] = ROK_ind_impcat.loc[:,['Negative', 'Positive']].sum(axis = 1) ROK_ind_impcat = ROK_ind_impcat.rename_axis("Year").reset_index() # 重置Year列格式 ROK_ind_impcat
内容的提问来源于stack exchange,提问作者Julianne Gibson
相关产品推荐
相关产品推荐

