我正在尝试使用 scikit-learnLabelEncoder
和 Polars DataFrame 来编码分类列。我正在使用以下代码。
import polars as pl
from sklearn.preprocessing import LabelEncoder
df = pl.DataFrame({
"Color" : ["red","white","blue"]
})
enc = LabelEncoder()
但是,会出现错误。
ValueError: y should be a 1d array, got an array of shape () instead.
接下来,我尝试将该列转换为 NumPy。
df.with_columns(
enc.fit_transform(pl.col("Color").to_numpy())
)
现在,出现了一个不同的错误。
AttributeError: 'Expr' object has no attribute 'to_numpy'
注意。我发现.cast(pl.Categorical).to_physical()
可以使用来获得所需的结果。不过,我更喜欢transform()
在我的测试数据集上使用类似的东西。
df.with_columns(
pl.col("Color").cast(pl.Categorical).to_physical().alias("Color_encoded")
)