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.

Problema en la filtración de un dataframe de pandas.

Estoy tratando de filtrar este conjunto de datos con múltiples condiciones usando loc.

Los datos provienen de un archivo de Excel que importé usando.

df = pd.read_csv()

Aquí está la estructura de muestra de df usando df.head():

df.head()

Necesito filtrar según los siguientes criterios (columnas): State-Gov, Bachelors, Never-Married, Adm-Clerical, Not-in-family, White, Male, United States, <=50k.

Mi código actualmente es:

import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
df = pd.read_csv("adult_census_data.csv")

df.head()

https://i.stack.imgur.com/iIy18.png

print(df.loc[df["Sector"].str.strip() == "State-gov"])

df.loc[(df['Sector']=='State-gov') & (df['Education']=='Bachelors') & (df['Married']=='Never-married') & (df['Job']=='Adm-clerical') & (df['Family']=='Not-in-family') & (df['Race']=='White') & (df['Gender']=='Male') & (df['Location']=='United-States') & (df['Income']=='<=50k'), ['Sector', 'Education', 'Married', 'Job', 'Family', 'Race', 'Gender', 'Location', 'Income']]

Sigo obteniendo el error KeyError 'Sector'.

Pensé que el código

print(df.loc[df["Sector"].str.strip() == "State-gov"])

eliminaría los espacios en blanco y limpiaría los datos.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para filtrar el df con múltiples condiciones usando loc, utiliza el siguiente código:

    df.loc[(df['Sector']=='State-gov') & (df['Education']=='Bachelors') & (df['Married']=='Never-married') & (df['Job']=='Adm-clerical') & (df['Family']=='Not-in-family') & (df['Race']=='White') & (df['Gender']=='Male') & (df['Location']=='United-States') & (df['Income']=='<=50k'), ['Sector', 'Education', 'Married', 'Job', 'Family', 'Race', 'Gender', 'Location', 'Income']]
    

    Asegúrate de que los nombres de las columnas estén escritos correctamente y que los valores sean una coincidencia exacta. Si persiste el KeyError 'Sector', asegúrate de que el nombre de la columna no esté mal escrito en el archivo de datos original. Además, al ejecutar df.head() se mostrarán los nombres de las columnas reales de los datos importados.

    La línea print(df.loc[df["Sector"].str.strip() == "State-gov"]) verifica si hay alguna fila en el DataFrame donde la columna ‘Sector’ contiene la cadena exacta “State-gov”. Si esta línea no devuelve ninguna fila, podría significar que la columna tiene un nombre diferente o que no hay filas que cumplan la condición especificada.

Comments are closed.