python - LabelEncoder 将列中的每个值更改为“LabelEncoder()”
问题描述
我不明白我怎么把事情搞得这么糟糕。对编码非常陌生。
我正在尝试通过 sklearn 上的 LabelEncoder 运行一个 pandas 列,以便将字符串更改为值。如果我不通过 LabelEncoder 运行它,该列会打印出应有的名称列表。当我使用 LabelEncoder 时,每个值实际上都只是更改为“LabelEncoder”。我究竟做错了什么?
import pandas as pd
from sklearn import preprocessing
import numpy as np
data = pd.read_excel('Data.xlsx', sep=',')
import pandas as pd
le = preprocessing.LabelEncoder()
fit = le.fit(data.loc[:,'R_Name'])
data.loc[:,'R_Name'] = fit
print(data.loc[:,'R_Name'])
这是我的结果:
0 LabelEncoder()
1 LabelEncoder()
2 LabelEncoder()
3 LabelEncoder()
4 LabelEncoder()
5 LabelEncoder()
6 LabelEncoder()
7 LabelEncoder()
8 LabelEncoder()
9 LabelEncoder()
10 LabelEncoder()
11 LabelEncoder()
12 LabelEncoder()
13 LabelEncoder()
14 LabelEncoder()
15 LabelEncoder()
16 LabelEncoder()
17 LabelEncoder()
18 LabelEncoder()
19 LabelEncoder()
20 LabelEncoder()
21 LabelEncoder()
22 LabelEncoder()
23 LabelEncoder()
24 LabelEncoder()
25 LabelEncoder()
26 LabelEncoder()
27 LabelEncoder()
28 LabelEncoder()
解决方案
我猜你想要你的专栏的编码版本。所以你需要在你安装的编码器上调用方法转换。见下文
从 sklearn 导入 pandas 作为 pd 导入预处理 导入 numpy 作为 np
#data = pd.read_excel('Data.xlsx', sep=',')
data = pd.DataFrame({'R_Name':['Pippo','Pluto','Paperino','Pluto','Pippo'],'ID':[1,34,5,22,1]})
le = preprocessing.LabelEncoder()
fitted_le = le.fit(data.loc[:,'R_Name'])
data.loc[:,'R_Name'] = fitted_le.transform(data.loc[:,'R_Name'])
print(data.loc[:,'R_Name'])
输出是:
0 1
1 2
2 0
3 2
4 1
Name: R_Name, dtype: int32
请注意,我定义了一个玩具数据框,因为我不知道您的 Excel 文件结构。我还将LabelEncoder 对象重命名为fitted_le:给变量赋予与方法相同的名称不是一个好主意。实际上,您的代码可以以更简洁的方式重写(我跳过了包含和数据框导入):
le = preprocessing.LabelEncoder()
data['R_Name'] = le.fit_transform(data['R_Name'])
print(data['R_Name'])
这是相关文档的链接https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.LabelEncoder.html
推荐阅读
- reactjs - 如果我们使用 Typescript,我们如何使用 CDN URL 机制进行包管理?
- javascript - 如何安装 npm peerDependencies 以删除警告
- nginx - Nginx 批量 URL 重定向
- webgl - 通过生成 MipMap 对 Webgl2 R32F 纹理中的值求和
- javascript - json.stringify(obj) 错误 obj 未定义
- php - Wordpress 帖子丢失但在数据库中仍然可见
- javascript - 引导选择器不显示选项
- python - 通过python正则表达式忽略ip地址的第一个八位字节中的这两个数字(以127或0开头)
- c# - Unity:拥有植被/草地的最有效方式(移动性能)?
- ajax - Ajax 用表单提交图片 - 传递 FormData - 触发提交