You need to enable JavaScript to run this app. 如何将数据集中的指定分类行合并生成新列变量
优惠活动
大模型
产品
解决方案
定价
更多

如何将数据集中的指定分类行合并生成新列变量

教育维度分类变量合并重编码实现方案

核心逻辑为建立原18类教育取值与目标5类层级的固定映射规则,通过向量化赋值直接生成新变量列,无需逐行遍历处理。

前置准备

先调取原教育变量的全部取值列表,确认18个分类的具体文本、编码内容,提前整理好对应映射关系,避免因字符串不一致导致匹配失效:

参考映射框架:

  • 原“无资质证明”类取值 → 新分类“无资质”
  • 原小学阶段所属的2类取值 → 新分类“小学学历”
  • 原第3、4、5类(初中、高中、中专等)取值 → 新分类“中学学历”
  • 原专科、本科阶段所属的7类取值 → 新分类“本科学历”
  • 原研究生阶段所属的6类取值 → 新分类“研究生学历”

常用工具实操方法

Python(pandas 实现)

通过字典映射完成批量匹配,代码简洁且无循环性能损耗:

import pandas as pd

# 逐行补全原取值到新分类的对应关系
edu_map = {
    "无资质证明": "无资质",
    "小学肄业": "小学学历",
    "小学毕业": "小学学历",
    "初中结业": "中学学历",
    "高中毕业": "中学学历",
    "中专毕业": "中学学历",
    # 剩余本科、研究生类的映射按实际取值补全
}

# 生成新的5分类教育变量
df["edu_5cat"] = df["原教育维度变量"].map(edu_map)

# 校验未匹配成功的原取值
unmatched_vals = df[df["edu_5cat"].isna()]["原教育维度变量"].unique()

R语言(dplyr 实现)

通过条件判断批量赋值,适配数据框管道操作流程:

library(dplyr)

df <- df %>%
  mutate(
    edu_5cat = case_when(
      原教育维度变量 == "无资质证明" ~ "无资质",
      原教育维度变量 %in% c("小学肄业", "小学毕业") ~ "小学学历",
      原教育维度变量 %in% c("初中结业", "高中毕业", "中专毕业") ~ "中学学历",
      原教育维度变量 %in% c("大专毕业", "本科毕业") ~ "本科学历",
      原教育维度变量 %in% c("硕士毕业", "博士毕业") ~ "研究生学历",
      .default = NA_character_
    )
  )

# 校验未匹配的原取值
unmatched_vals <- df %>%
  filter(is.na(edu_5cat)) %>%
  distinct(原教育维度变量)

Stata 实现

适配社科研究常用的面板数据处理流程:

* 初始化新变量为空值
gen edu_5cat = ""

* 逐类完成匹配赋值
replace edu_5cat = "无资质" if 原教育维度变量 == "无资质证明"
replace edu_5cat = "小学学历" if 原教育维度变量 == "小学肄业" | 原教育维度变量 == "小学毕业"
replace edu_5cat = "中学学历" if inlist(原教育维度变量, "初中结业", "高中毕业", "中专毕业")
replace edu_5cat = "本科学历" if inlist(原教育维度变量, "大专毕业", "本科毕业")
replace edu_5cat = "研究生学历" if inlist(原教育维度变量, "硕士毕业", "博士毕业")

* 转换为带值标签的分类变量,避免排序错乱
encode edu_5cat, gen(edu_5cat_code)

* 校验未匹配样本
tab 原教育维度变量 if edu_5cat == ""

操作注意事项

  • 不要直接覆盖原有的18类教育变量,保留原字段便于后续回溯和校验。
  • 匹配前先通过unique(原教育维度变量)调取所有实际取值,确认字符串的空格、标点、大小写完全和映射规则一致,避免隐性匹配失效。
  • 赋值完成后跑交叉表table(原教育维度变量, edu_5cat),逐类核对原分类和新分类的对应关系,确保没有错配、漏配的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.30 08:27:07