首页 > 解决方案 > Python Pandas OneHotEncoder 类别

问题描述

我正在阅读有关 Python 中的 One Hot Encoding 的内容,其中有一行我无法解释它的含义。代码如下:

ohe=preprocessing.OneHotEncoder(dtype=np.int,sparse=True,handle_unknown="ignore")
data=ohe.fit_transform(df[["country"]])

问题是当我打印这样的类别值时:

print (ohe.categories_)

它打印[array(['EEUU', 'France', 'Portugal', 'Italy'], dtype=object)]

但是当我这样做时:

print (ohe.categories_[0])

['EEUU', 'France', 'Portugal', 'Italy']

我无法找到 [0] 的作用,它似乎从数组转换为列表,但为什么不使用类似 tolist() 函数的东西呢?

我在网上搜索过,但我找不到关于这个表达式的解释,有什么帮助吗?

谢谢

标签: pythonpandas

解决方案


[array(['EEUU', 'France', 'Portugal', 'Italy'], dtype=object)]是一个包含一个对象的列表。该对象是一个 numpy 数组。当您这样做时ohe.categories_[0],您将访问此列表的第一项——它恰好是列表中的唯一一项。

ohe.categories_返回一个列表,因为它numpy为输入中的每一列返回一个不同的数组。由于df[["country"]]只有一列,它返回一个只有一个对象的列表。

例如,如果你这样做df[["country", "second_column"]]了,你会得到一个包含两个数组的列表,并说明每个数组的类别。


推荐阅读