调整员工数量分组阈值时触发TypeError: unhashable type: 'Series'求助
员工数量分组调整的TypeError问题解决
错误根源
你在合并分组的代码里犯了变量名笔误:前面操作的DataFrame是dfff,但分组代码里写成了df。这导致df['employee_count']被识别为无法哈希的Series对象,触发了TypeError: unhashable type: 'Series'错误。
修正后的代码
保留你正确的删除未知记录代码,修正分组部分的变量名:
# 删除unknown记录(这段代码没问题) employee_count_unknown = dfff[(dfff['employee_count'] == 'unknown')].index dfff.drop(employee_count_unknown, inplace=True) # 修正变量名后的分组合并代码 dfff.loc[dfff['employee_count'].isin(["251-500", "501-1000"]), "employee_count"] = "251-1000" dfff.loc[dfff['employee_count'].isin(["1001-5000", "5001-10000", "10000+"]), "employee_count"] = "1001+"
更简洁的替代方案
用replace方法可以更清晰地完成分组映射,代码可读性更高:
# 定义分组映射规则 group_map = { "251-500": "251-1000", "501-1000": "251-1000", "1001-5000": "1001+", "5001-10000": "1001+", "10000+": "1001+" } # 应用映射 dfff['employee_count'] = dfff['employee_count'].replace(group_map)
验证结果
执行完代码后,运行以下命令查看分组是否正确:
print(dfff["employee_count"].value_counts())
预期输出:
employee_count 1-10 56091 11-50 55892 51-100 14377 101-250 12217 251-1000 10571 1001+ 7383 Name: count, dtype: int64
内容的提问来源于stack exchange,提问作者Rebeka
相关产品推荐
相关产品推荐

