一只名叫tom的猫
如果可能的话,最安全的选择是在使用 之前将列转换为包含所有可能值的分类数据类型get_dummies。如果您的训练数据经常更改(流式传输/经常更新)并且您想要最大的兼容性,这尤其有用:x_values = ["a", "b", "c", "d", "e"]x_type = pd.Categorical(values=x_values)df = pd.DataFrame(dict(x=["a", "b", "c"], y=[1,2,3]))不知道可能值“d”、“e”的傻瓜:x_dummies = pd.get_dummies(df.x) a b c0 1 0 01 0 1 02 0 0 1 知道“d”、“e”的虚拟人存在,即使当前数据中没有表示:df["x"] = df["x"].astype(x_cat)x_dummies = pd.get_dummies(df.x) a b c d e0 1 0 0 0 01 0 1 0 0 02 0 0 1 0 0