You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何合并pandas DataFrame中同类字符串以规避虚拟变量陷阱

实现方案

1. map方法实现

预先定义完整的类别映射规则,适合映射关系固定、需要统一管控类别的场景:

# 定义所有取值的对应关系
fruit_mapper = {
    "redapple": "apple",
    "greenapple": "apple",
    "orange": "orange",
    "pear": "pear",
    "grape": "grape"
}
df["fruit"] = df["fruit"].map(fruit_mapper)

2. lambda实现

仅针对需要合并的类别做判断,不需要枚举所有取值,适合规则简单的场景:

df["fruit"] = df["fruit"].apply(lambda x: "apple" if x in ("redapple", "greenapple") else x)

3. 更优推荐方案:replace批量替换

不需要写全所有类别映射,直接指定需要替换的取值即可,代码更简洁,扩展性更强:

df["fruit"] = df["fruit"].replace(to_replace=["redapple", "greenapple"], value="apple")

后续操作提示

处理完成后fruit列的唯一值会变为4个,再执行Df = pd.get_dummies(Df, drop_first=True)生成3个虚拟变量,既避免了虚拟变量陷阱,也不会出现sns.heatmap无法识别特征的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:45:04