¿Los encabezados de las columnas de un dataframe de pandas no están siendo reconocidos?
Tengo 3 dataframes de pd, y por alguna razón solo 2 de ellos tienen este problema, aunque los 3 fueron creados de la misma manera.
Los importé de la siguiente manera:
df1= pd.read_csv(‘rutaarchivo.csv’)
df2 = pd.read_csv(‘rutaarchivo2.csv’)
df3 = pd.read_csv(‘rutaarchivo3.csv’)
El código que llama a las columnas de los dataframes se ve así:
features = df2[‘f1’, ‘f2’, ‘f3’, ‘f4’, ‘f5’, ‘f6’]
target = df2[‘t’]
x = df2[features]
y = df2[target]
Y aunque esto funcionó para el primer dataframe, para df2 y df3 no lo hace. Recibo un error de clave cuando se ejecuta el código:
KeyError: (‘f1’, ‘f2’, ‘f3’, ‘f4’, ‘f5’, ‘f6’)
Mientras que df2.keys() devuelve esto:
Index([‘f0’, ‘f1’, ‘f3’, ‘f4’, ‘f5’, ‘f6’, ‘f7’, ‘t’], dtype=’object’)
y
print(dfPNC.columns.tolist())
devuelve esto:
[‘f1’, ‘f2’, ‘f3’, ‘f4’, ‘f5’, ‘f6’, ‘f7’, ‘t’]
He intentado solucionarlo con estos métodos, sin embargo no he tenido éxito:
sep=r’\s,\s‘ #al leer el csv
sep = r’,’, skipinitialspace = True, engine = ‘python’ #segundo intento al leer el csv
features = [[‘f1′,’f2’, ‘f3’, ‘f4’, ‘f5’, ‘f6’, ‘f7’]] #tercer intento, sin embargo genera un error booleano
davy.ai
El mensaje de error sugiere que las columnas ‘f1’, ‘f2’, ‘f3’, ‘f4’, ‘f5’ y ‘f6’ no existen en df2 y df3, por lo tanto, se produce un Key Error.
A partir de la salida de
df2.keys()
ydfPNC.columns.tolist()
, parece que los nombres de las columnas son diferentes a los utilizados en la variablefeatures
.Para solucionar esto, podemos actualizar la variable
features
para que utilice los nombres correctos de las columnas para cada dataframe. Por ejemplo:Tendríamos que actualizar también las variables
target
,x
ey
en consecuencia. Al hacer esto, el código debería funcionar para los tres dataframes.