Python Pandas OneHotEncoder类别

时间:2019-08-28 00:01:34

标签: python pandas

我正在阅读有关Python中的一种热门编码的信息,有一行我无法解释它的含义。代码如下:

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()函数之类的东西呢?

我已经在网上搜索过,但是找不到有关此表达式的说明,有帮助吗?

谢谢

1 个答案:

答案 0 :(得分:1)

[array(['EEUU', 'France', 'Portugal', 'Italy'], dtype=object)]是带有一个对象的列表。该对象是一个numpy数组。当您执行ohe.categories_[0]时,将访问此列表的第一项-恰好是列表中的唯一项。

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

例如,如果您进行了df[["country", "second_column"]],则将获得包含两个数组的列表,并为每个数组说明类别。