pandas - 在两个不同的数据框上使用相同的类别标签标准
问题描述
我有一个包含分类特征的数据帧,我用以下方式编码:
df['categorical_feature'] = df['categorical_feature'].astype('category')
df['labels'] = df['categorical_feature'].cat.codes
如果我在另一个具有相同类别字段的数据帧上应用与上面相同的代码,则映射将被打乱,但我需要它与第一个数据帧一致。
有没有办法成功地将相同的映射category:label
应用于另一个具有相同分类值的数据帧?
解决方案
我认为您正在寻找pd.Series.map()
,它将值从映射category
到label
使用具有category: label
映射的字典。
创建映射字典:您可以结合使用字典推导来做到这一点zip
,但也有其他方法可以做到这一点:
col = 'categorical_features'
mapping_dict = {k: v for k, v in zip(df[col], df[col].cat.codes}
现在您可以映射该category: label
映射:
df['labels'] = df['categorical'].map(mapping_dict)
推荐阅读
- sql - 将 varchar 数据类型转换为日期时间错误。日期格式问题
- python - 如何从 gRPC 客户端获取状态代码 OK 响应
- android - 如何修复“Http2CallStream 缺少或权限不足”
- php - 在 ubuntu 18.10.1 中安装 wordpress 后出错
- angular - 如何覆盖 Angular > vendor.js 中定义的事件处理程序?
- mysql - 通过比较两个不同的数据库来查找缺失的表
- angular - Angular 8 忽略 includePaths
- opencart - 自定义付款/帐单地址表单字段 Opencart
- asp.net-core - 乐观并发:总是检查 RowVersion IS NULL
- c# - 在对话流意图中从谷歌帐户获取访问令牌