首页 > 解决方案 > 在 pandas 中跨不同文件维护标签编码

问题描述

我知道如何使用 scikit-learn 和 pandas 来编码我的分类数据。我现在一直在使用 pandas 中的类别代码,稍后我会将其转换为用于 ML 的 OneHot 编码格式。

我的问题是我需要为具有相同数据格式的多个文件创建一个预处理管道。我发现使用 pandas 类别代码编码并不一致,即使数据中的类别(字符串)在多个文件中是相同的。

有没有办法按字典顺序进行这种编码,以便在所有文件中以相同的方式完成,或者有没有可以使用的特定方法在应用于多个文件时会导致相同的编码?

标签: pythonpandasscikit-learn

解决方案


LabelEncoder所有其他 Sklearn-Transformers 一样,具有三种特定方法:

  1. fit():给定一些输入数据创建标签
  2. transform():将数据转换为编码器实例的标签。它必须在之前调用fit()过,否则会抛出错误
  3. fit_transform():这是一种方便的方法,可以直接创建标签并转换数据。

我猜你fit_transform到处打电话。要解决此问题,只需调用fit一次 - 方法(在所有数据的超集上,因为如果遇到您调用的数据中不存在的标签,它将引发错误fit),然后使用该transform方法。


推荐阅读