python - 在 pandas 中跨不同文件维护标签编码
问题描述
我知道如何使用 scikit-learn 和 pandas 来编码我的分类数据。我现在一直在使用 pandas 中的类别代码,稍后我会将其转换为用于 ML 的 OneHot 编码格式。
我的问题是我需要为具有相同数据格式的多个文件创建一个预处理管道。我发现使用 pandas 类别代码编码并不一致,即使数据中的类别(字符串)在多个文件中是相同的。
有没有办法按字典顺序进行这种编码,以便在所有文件中以相同的方式完成,或者有没有可以使用的特定方法在应用于多个文件时会导致相同的编码?
解决方案
与LabelEncoder
所有其他 Sklearn-Transformers 一样,具有三种特定方法:
fit()
:给定一些输入数据创建标签transform()
:将数据转换为编码器实例的标签。它必须在之前调用fit()
过,否则会抛出错误fit_transform()
:这是一种方便的方法,可以直接创建标签并转换数据。
我猜你fit_transform
到处打电话。要解决此问题,只需调用fit
一次 - 方法(在所有数据的超集上,因为如果遇到您调用的数据中不存在的标签,它将引发错误fit
),然后使用该transform
方法。
推荐阅读
- azure-servicebus-topics - 无法更新 azurefunctions 中的 host.json 文件
- matlab - 表达式识别中的模糊规则插值
- python - 如何从状态栏中隐藏 gui?
- .net - 无法获取未定义或空引用的属性“开始”
- java - 如何使用 START_STICKY 将额外的值传递给服务?
- sql - SQL - 在子查询中选择特定条件
- angular - (Angular)我应该在核心文件夹(作为单例)还是在延迟加载的模块本身中拥有我的 http 服务?
- javascript - 如何获取单个输入字段的值并将每个产品发送到数据库
- javascript - 使用 JavaScript Promise 时如何传递信息
- data-structures - 只有一个值的树插入