es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de índice en la regresión lineal de scikit-learn.

Estoy trabajando en un modelo de regresión lineal para llenar los valores nulos de la característica “Rupeepersqft”. Cuando ejecuto el código, recibo este error:

IndexError                                Traceback (most recent call last)
<ipython-input-20-33d4e6d2998e> in <module>()
      1 testdata = datawithnull.iloc[:,:3]
----> 2 Rupeepersqftpredicted['Rupeepersqft'] = pd.DataFrame(linreg.predict(test_data))

IndexError: solo enteros, rebanadas (:), elipsis (...), nuevas dimensiones de matriz (None) y matrices de enteros o booleanos son índices válidos

Este es el código que me da el error:

from sklearn.linear_model import LinearRegression
linreg = LinearRegression()

datawithnull = data2[['Price (Lakhs)','Area','Area Type','Rupeepersqft','Condition','Purchase Type','Real Estate Regulation Act']].dropna()
datawithoutnull =  datawithnull.dropna()

traindatax = datawithoutnull.iloc[:,:3]
traindatay = datawithoutnull.iloc[:,3]

linreg.fit(traindatax, traindatay)

testdata = datawithnull.iloc[:,:3]
Rupeepersqftpredicted['Rupeepersqft'] = pd.DataFrame(linreg.predict(test_data))

datawithnull.Rupeepersqft.fillna(Rupeepersqft_predicted, inplace=True)

Así es como se ve el conjunto de datos:

[imagen del conjunto de datos]

¿Alguien puede ayudarme con esto?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando usar la función iloc para seleccionar un subconjunto de tus datos. La función iloc toma un índice o una lista de índices para seleccionar los datos. Sin embargo, parece que estás pasando un nombre de columna en lugar de un índice.

    Puedes usar la función loc en lugar de iloc para seleccionar los datos por el nombre de la columna. Por ejemplo, puedes usar data_with_null.loc[:, 'Price (Lakhs)':'Area Type'] para seleccionar las columnas desde Price (Lakhs) hasta Area Type.

    También puedes usar el atributo columns del dataframe para obtener los índices de las columnas que quieres seleccionar. Por ejemplo, puedes usar data_with_null.columns.get_loc('Price (Lakhs)') para obtener el índice de la columna Price (Lakhs). Luego puedes usar este índice para seleccionar los datos utilizando la función iloc.

    ¡Espero que esto te ayude!

Comments are closed.