TypeError: unhashable tipo

Escribí un pequeño trozo de código para realizar la regresión lineal utilizando sklearn.

He creado un 2 columna archivo csv (los nombres de columna de X,Y con algunos números) y
cuando leí el archivo veo que el contenido de leer correctamente – como se muestra a continuación.

Sin embargo, estoy consiguiendo «unhashable tipo de» error cuando intento hacer referencia a una columna usando los comandos datafile[:,:] o datafile[:,-1] etc..

Y cuando trato de usar X como respuesta, Y como predictor en sklearn de la regresión lineal, obtengo el Valor de error como se muestra a continuación.

Busqué en internet pero no es capaz de averiguar lo que está mal con mi código o archivo. Por favor, ayudar.

import pandas as pd
datafile=pd.read_csv('samplelinear.csv')
datafile

     X    Y    
0    0 1.440000 
1    1 33.220000 
. . . 

print datafile.__class__
<class 'pandas.core.frame.DataFrame'>

datafile[:,:]
TypeError: unhashable type

datafile[:,:1]
TypeError: unhashable type


from sklearn.linear_model import LinearRegression
model=LinearRegression()

model.fit(datafile.X,datafile.Y)
ValueError: Found arrays with inconsistent numbers of samples: [ 1 14]
InformationsquelleAutor qurious | 2015-12-11

2 Kommentare

  1. 7

    Si desea utilizar el sector de la sintaxis para seleccionar de una dataframe tienes que utilizar

    data.iloc[:,:1]
    

    Para el segundo problema, el de entrada X debe ser una matriz, no un vector, por lo que incluir más columnas o utilizar la sintaxis:

    model.fit(pd.DataFrame(datafile.X), datafile.Y)
    
    • Muchas gracias..
  2. 0

    Otra opción más corta para cortar los pandas marco de datos es:

     data.ix[:,:1]
    
    • este ha sido desaprobado creo en favor de los iloc para la posición de corte y loc para la etiqueta basada en rodajas.
    • Gracias Michael por el comentario. Que es exacta.

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea