/ / Pandy ustawiają wielowierszową ramkę danych - python, pandy

Pandy ustawiają wieloliniową ramkę danych - python, pandy

używam read_csv i chcę upuścić kilka wierszy, które mają określoną wartość, mógłbym zrobić to dobrze w osobnych wierszach, ale gdy chcę wywołać obie w tej samej linii, zwraca NoneType błąd.

Mój pierwszy kod:

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

I chcę to zrobić:

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

Zwrócił błąd:

TypeError: Obiekt „NoneType” nie podlega subskrypcji

Odpowiedzi:

1 dla odpowiedzi № 1

Myślę, że musisz wpaść index od boolean indexing:

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

Ale lepsze jest użycie boolean indexing:

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

1 dla odpowiedzi nr 2

Powodem jest to, że drop zwraca None, jeśli jestpolecony do wykonania na miejscu (jak sugeruje operator lokalny). Usuń operatora (który pociąga za sobą trochę pamięci i kosztów przetwarzania) lub zrób to w dwóch liniach.