此代码显示重塑错误。如何解决这个问题?

问题描述 投票:0回答:1

我是 Python 和 ML 新手。我写这段代码是为了练习。它显示此错误。我该如何解决这个重塑问题?

import pandas as pd
import sklearn as skl

data=pd.read_csv('housing.csv')
housing=data['ocean_proximity']
from sklearn.preprocessing import OneHotEncoder
encoder=OneHotEncoder()
housing_cat_fac=housing.factorize()
housing_final=encoder.fit_transform(housing_cat_fac.reshape(1,-1))
AttributeError                            Traceback (most recent call last)
<ipython-input-31-b13a23adc636> in <cell line: 9>()
      7 encoder=OneHotEncoder()
      8 housing_cat_fac=housing.factorize()
----> 9 housing_final=encoder.fit_transform(housing_cat_fac.reshape(1,-1))

AttributeError: 'tuple' object has no attribute 'reshape'
pandas numpy attributes tuples reshape
1个回答
0
投票

factorize
返回因式分解值和唯一原始值的元组。

因此

housing_cat_fac=housing.factorize()
将使
housing_cat_fac
成为一个元组。

您应该使用:

housing_cat_fac = housing.factorize()[0]

或者,如果您想保留原始值:

housing_cat_fac, uniq_vals = housing.factorize()

那么

housing_cat_fac
将是一个 numpy 数组。

© www.soinside.com 2019 - 2024. All rights reserved.