为DataFrame分类数据添加标签:婚姻状态调查数据处理
给
marstat列添加类别标签的解决方案 你已经把原始婚姻状态列d11104转换成编码后的marstat类别列了,接下来给这些数字编码配上对应文字标签其实很简单,这里有两种靠谱的方法:
方法1:手动映射重命名类别
从你的数据统计结果里,能明确编码和原始标签的对应关系:
- 0 → keine Angabe
- 1 → Married
- 2 → Single
- 3 → Widowed
- 4 → Divorced
- 5 → Separated
直接用cat.rename_categories()方法就能完成标签设置:
# 按编码顺序定义对应的标签列表 labels = ["keine Angabe", "Married", "Single", "Widowed", "Divorced", "Separated"] df['marstat'] = df['marstat'].cat.rename_categories(labels)
执行完后运行df['marstat'].value_counts(),就能看到带文字标签的统计结果了。
方法2:复用原始列的类别配置(更稳妥)
因为marstat是从d11104的cat.codes生成的,而d11104本身就是带类别标签的Categorical类型,你可以直接复用它的类别信息,避免手动输入出错:
# 建立编码到原始标签的映射字典 code_to_label = dict(enumerate(df['d11104'].cat.categories)) # 用映射字典重命名marstat的类别 df['marstat'] = df['marstat'].cat.rename_categories(code_to_label)
这种方法的优势是,如果后续原始列d11104的类别有调整,你不需要手动修改标签列表,直接复用原始配置即可。
小提醒
确保marstat列的类型是category(你已经用.astype('category')设置过了,所以没问题),设置标签后它依然会保留类别类型,既不影响统计分析的逻辑,又能让输出结果更直观。
内容的提问来源于stack exchange,提问作者E. Sommer
相关产品推荐
相关产品推荐

