#python #filter #jupyter #loc
Вопрос:
Я пытаюсь отфильтровать этот набор данных с несколькими условиями, используя loc
Данные поступают из файла Excel, который я импортировал с помощью
df = pd.read_csv()
Вот пример структуры из df
использования df.head()
:
df.head()
необходимо выполнить фильтрацию по следующим (столбцам) критериям: State-Gov, Bachelors, Never-Married, Adm-Clerical, Not-in-family, White, Male, United States, lt;=50k
мой код в настоящее время
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') amp; (df['Education']=='Bachelors') amp; (df['Married']=='Never-married') amp; (df['Job']=='Adm-clerical') amp; (df['Family']=='Not-in-family') amp; (df['Race']=='White') amp; (df['Gender']=='Male') amp; (df['Location']=='United-States') amp; (df['Income']=='lt;=50k'), ['Sector', 'Education', 'Married', 'Job', 'Family', 'Race', 'Gender', 'Location', 'Income']]
Я продолжаю получать KeyError 'Sector'
Я думал, что
print(df.loc[df["Sector"].str.strip() == "State-gov"])
удалил бы пробелы и очистил данные.
Ответ №1:
Проблема в том, что df[‘Сектор’]-это массив, который u не может сравнить со строкой «Государство-правительство». скорее, вы можете использовать цикл for через «Сектор»и получить индекс, когда элемент в массиве совпадает с «Государством-правительством».
Комментарии:
1. привет, спасибо за вашу помощь — я все еще новичок в коде — не могли бы вы показать мне правильный код, чтобы я мог сравнить его с тем, что у меня есть?