/ / Панди встановлюють декілька рядків даних Frame - python, pandas

Панди встановлюють декілька рядків даних Frame - python, pandas

я використовую read_csv і хочете відмовитися від деяких рядків, які мають певне значення, я можу зробити це добре в окремих рядках, але коли я хочу викликати обидві рядки, він повертає NoneType помилка

Мій перший код:

census_df = pd.read_csv("census.csv")
census_df.drop(census_df["SUMLEV"] == 40, inplace=True)

І я хочу зробити:

census_df = (pd.read_csv("census.csv")
.drop(census_df["SUMLEV"] == 40, inplace=True))

Повернуто помилка:

TypeError: Об'єкт "NoneType" не є індексною

Відповіді:

1 для відповіді № 1

Думаю, вам потрібно заїхати index від boolean indexing:

census_df = ( pd.read_csv("census.csv").drop(census_df[(census_df["SUMLEV"] == 40)].index) )

Але краще це використовувати boolean indexing:

census_df =  pd.read_csv("census.csv")
census_df = census_df[census_df["SUMLEV"] != 40]

1 для відповіді № 2

Причина в тому, що падіння повертає None, якщо воно єдоручено виконати в місці (як запропонував оператор inplace). Зніміть оператора (який приносить деяку вартість пам'яті та обробку) або виконайте його у два рядки.