2017-04-08 1 views
9

를 인코딩. 아무도 도와 줄 수 있습니까?파이썬 "형식 오류 : unhashable 유형 : '조각'"파이썬에서 범주 데이터를 인코딩하는 아래의 코드를 실행할 때 내가 <blockquote> <p>TypeError: unhashable type: 'slice'</p> </blockquote> <p></p>을 얻고 범주 데이터

# Importing the libraries 
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 

# Importing the dataset 
dataset = pd.read_csv('50_Startups.csv') 
y=dataset.iloc[:, 4] 
X=dataset.iloc[:, 0:4] 

# Encoding categorical data 
from sklearn.preprocessing import LabelEncoder, OneHotEncoder 
labelencoder_X = LabelEncoder() 
X[:, 3] = labelencoder_X.fit_transform(X[:, 3]) 
+2

csv 파일에는 무엇이 있습니까? 어떤 줄에 TypeError가 있습니까? –

+1

해당 스택 추적을 질문에 추가하십시오. –

+0

'dataset'에 대한 정보를 알려주시겠습니까? 나는 그것의 'iloc'이 슬라이스 같은 2 차원 어레이가 아닌 문자열 컬럼 레이블을 기대한다고 생각합니다. 이 오류는 '슬라이스'(예 : 0 : 4)가 사전 키 또는 그와 비슷한 것으로 사용됨을 의미합니다. – hpaulj

답변

23

X는 dataframe이며 X[:, 3] 같은 슬라이스 용어를 통해 액세스 될 수 없다. iloc 또는 X.values을 통해 액세스해야합니다. 그러나, 당신이 구축 한 방법 X 복사 ... ... 그래서. I 변수 X를 생성하는 동안 하나 values

# Importing the libraries 
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 

# Importing the dataset 
# dataset = pd.read_csv('50_Startups.csv') 

dataset = pd.DataFrame(np.random.rand(10, 10)) 
y=dataset.iloc[:, 4] 
X=dataset.iloc[:, 0:4] 

# Encoding categorical data 
from sklearn.preprocessing import LabelEncoder, OneHotEncoder 
labelencoder_X = LabelEncoder() 

# I changed this line 
X.values[:, 3] = labelencoder_X.fit_transform(X.values[:, 3]) 
0

사용 값을 사용하거나 X 행렬과 벡터 Y 사용 values 생성시 부호화 동안

# Importing the libraries 
import numpy as np 
import matplotlib.pyplot as plt 
import pandas as pd 

# Importing the dataset 
# dataset = pd.read_csv('50_Startups.csv') 

dataset = pd.DataFrame(np.random.rand(10, 10)) 
y=dataset.iloc[:, 4].values 
X=dataset.iloc[:, 0:4].values 
1

전술 한 바와 같이 것이다.

X=dataset.iloc[:,4].values 
Y=dataset.iloc[:,0:4].values 

확실히 문제가 해결 될 것입니다.

관련 문제