Может кто-нибудь помочь мне понять, что .index делает в этом коде? - PullRequest
0 голосов
/ 01 октября 2019

У меня есть следующий код:

print(df.drop(df[df['Quantity'] == 0].index).rename(columns={'Weight': 'Weight (oz.)'}))

Я понимаю, что запрос пытается сделать, но я не понимаю, почему вам нужно добавить часть ".index"?

Что делает .index в этом конкретном коде?

Для контекста вот так выглядит датафрейм: enter image description here

Я посмотрел документацию Python по индексу фрейма данных:

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.index.html

но, к сожалению, это было слишком расплывчато для меня, чтобы понять это.

Ответы [ 2 ]

0 голосов
/ 01 октября 2019

Я проверил df.drop() документацию. Это говорит о том, что он падает по индексу. Этот код сначала находит элементы с количеством 0, но, поскольку drop() работает с индексами, он отправляет элементы обратно в фрейм данных и получает их индексы. Это index.

https://pandas.pydata.org/pandas-docs/stable//reference/api/pandas.DataFrame.drop.html

0 голосов
/ 01 октября 2019

DataFrame.index - это индекс каждой записи в вашем фрейме данных. Он уникален для каждой строки, даже если две строки содержат одинаковые данные в каждом столбце. DataFrame.drop берет index : single label or list-like и удаляет те строки, которые соответствуют индексу.

Таким образом, из приведенного выше кода,

df[df['Quantity'] == 0] получает строки, которые имеют Quantity == 0, df[df['Quantity'] == 0].indexполучает индексы всех строк с предикатом, df.drop(df[df['Quantity'] == 0].index) удаляет все индексы, которые вернули True для этого предиката.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...