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.
davy.ai
Para filtrar el
df
con múltiples condiciones usandoloc
, utiliza el siguiente código: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 ejecutardf.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.