2017-04-08 6 views
9

एन्कोड करने के लिए। क्या कोई मदद कर सकता है?अजगर "लेखन त्रुटि: unhashable प्रकार: 'टुकड़ा' 'मैं</p> <blockquote> <p>TypeError: unhashable type: 'slice'</p> </blockquote> <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

सीएसवी फ़ाइल में क्या है? किस लाइन में आपको TypeError मिला? –

+1

कृपया अपने प्रश्न के लिए संबंधित स्टैक ट्रेस जोड़ें। –

+0

'डेटासेट' के बारे में बताएं? मुझे संदेह है कि इसकी 'इलोक' स्ट्रिंग कॉलम लेबल की अपेक्षा कर रही है, न कि स्लाइसिंग की तरह 2 डी सरणी। त्रुटि का तात्पर्य है कि 'स्लाइस' (उदा। 0: 4) का उपयोग शब्दकोश कुंजी के रूप में किया जा रहा है, या ऐसा कुछ। – hpaulj

उत्तर

23

X एक dataframe है और X[:, 3] तरह टुकड़ा शब्दावली के माध्यम से पहुँचा नहीं जा सकता। आपको iloc या X.values के माध्यम से एक्सेस करना होगा। हालांकि, जिस तरह से आपने 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

उपयोग मान का उपयोग करें या जब एन्कोडिंग ऊपर

# 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 और Y वेक्टर उपयोग values बनाने है।

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

यह निश्चित रूप से आपकी समस्या का समाधान करेगा।

संबंधित मुद्दे