在 Pandas 中,您可以使用 LabelEncoder 对单个列中的文本值进行编码。但是,如果您想对多个列中的文本值进行编码,该怎么办呢?
以下是一种使用 Pandas 和 LabelEncoder 对多个列进行编码的方法:
import pandas as pd
from sklearn.preprocessing import LabelEncoder
创建一个 Pandas DataFrame,包含要编码的多个列:
data = {'color': ['red', 'blue', 'green', 'green', 'red', 'blue'],
'size': ['M', 'S', 'L', 'XL', 'M', 'S'],
'gender': ['male', 'female', 'male', 'female', 'male', 'female']}
df = pd.DataFrame(data)
创建一个 LabelEncoder 对象,并使用它来编码 DataFrame 中的每个列:
le = LabelEncoder()
df['color'] = le.fit_transform(df['color'])
df['size'] = le.fit_transform(df['size'])
df['gender'] = le.fit_transform(df['gender'])
在这个例子中,我们创建了一个 LabelEncoder 对象 le
,然后使用它对 DataFrame 中的每个列进行编码。请注意,我们必须为每个列分别调用 fit_transform()
方法。如果您只想对单个列进行编码,则可以只对该列调用 fit_transform()
。
打印编码后的 DataFrame:
print(df)
color size gender
0 2 1 1
1 0 0 0
2 1 2 1
3 1 3 0
4 2 1 1
5 0 0 0
在这个例子中,我们可以看到编码后的 DataFrame。每个文本值都被替换为一个整数值。
希望这个例子能帮助您理解如何使用 LabelEncoder 对多个列进行编码。如果您有任何其他问题,请继续提问。