LabelEncoder.fit_transform()的类型错误

Yue*_*hao 4 python-3.x pandas scikit-learn

我正在使用Kaggle的Titanic数据集(https://www.kaggle.com/c/titanic/data),我想使用sklearn.preprocessing中的LabelEncoder转换Sex,最初标记为'male'或'female '进'0'或'1'.我有以下四行代码,

import pandas as pd
from sklearn.preprocessing import LabelEncoder
df = pd.read_csv('titanic.csv')
df['Sex'] = LabelEncoder.fit_transform(df['Sex'])  
Run Code Online (Sandbox Code Playgroud)

但是当我运行它时,我收到以下错误消息:

TypeError: fit_transform() missing 1 required positional argument: 'y'
Run Code Online (Sandbox Code Playgroud)

错误来自第4行,即

df['Sex'] = LabelEncoder.fit_transform(df['Sex']) 
Run Code Online (Sandbox Code Playgroud)

我想知道这里出了什么问题.虽然我知道我也可以使用map进行转换,这可能更简单,但我仍然想知道我对LabelEncoder的使用有什么问题.

stu*_*ent 6

尝试使用以下链接sklearn.LabelEncoder是一个实用程序类,需要使用以下命令创建对象LabelEncoder():

le = LabelEncoder()
df['Sex'] = le.fit_transform(df['Sex'])
Run Code Online (Sandbox Code Playgroud)

用例子测试:

# create test series
gender = pd.Series(['male', 'female', 'male'])

le = LabelEncoder()
transformed_val = le.fit_transform(gender)

# checking result after using label encoder
print(transformed_val)
Run Code Online (Sandbox Code Playgroud)

结果:

[1 0 1]
Run Code Online (Sandbox Code Playgroud)

  • 我明白了问题所在.我应该在设置le = LabelEncoder()之后使用LabelEncoder().fit_transform(df ['Sex'])或le.fit_transform(df ['Sex']).我在我的代码中错过了LabelEncoder之后的().谢谢你指出来了! (2认同)