Open in Colab

Как выбрать определенные столбцы из DataFrame?

Меня интересует возраст пассажиров:

Чтобы выбрать один столбец, используйте квадратные скобки [] с именем интересующего столбца.

Каждый столбец в DataFrame является Series.

Поскольку выбран один столбец, то возвращаемый объект является Series.

Мы можем проверить это:

Посмотрим на результат обращения к атрибуту shape:

DataFrame.shape является атрибутом Series и DataFrame и содержит количество строк и столбцов (nrows, ncolumns).

Серия является одномерной, поэтому возвращается только количество строк.

Меня интересует возраст и пол пассажиров:

Чтобы выбрать несколько столбцов, используйте список имен столбцов в квадратных скобках [].

Внутренние квадратные скобки определяют список Python с именами столбцов, тогда как внешние квадратные скобки используются для выбора данных.

Возвращаемый тип данных - DataFrame:

Видим, что DataFrame содержит 891 строк и 2 столбца.

Для получения информации об индексации см. Раздел руководства пользователя по индексированию и выбору данных.

Как отфильтровать определенные строки из DataFrame?

Меня интересуют пассажиры старше 35 лет:

Условие внутри скобок проверяет, для каких строк столбец имеет значение больше 35:

Вывод условного выражения (>, но также будут работать ==, !=, <, <=, ... ) является Series булевых значений (True или False) с тем же числом строк, что и в оригинальном DataFrame.

Подобный Series может быть использован для фильтрации DataFrame, помещая его внутрь скобок выбора [].

Будут выбраны только те строки, для которых это значение True.

Давайте посмотрим на количество строк, которые удовлетворяют условию, проверив атрибут shape полученного DataFrame:

Меня интересуют пассажиры из кают класса 2 и 3:

Подобно условному выражению, isin() возвращает True для каждой строки, значения которой находятся в предоставленном списке.

Чтобы отфильтровать строки на основе такой функции, используйте функцию внутри скобок [].

Вышесказанное эквивалентно фильтрации по строкам, для которых класс равен 2 или 3, и объединению двух операторов с помощью (или) | :

См. Специальный раздел в руководстве пользователя о булевой индексации.

Я хочу работать с данными о пассажирах, для которых известен возраст:

notna() возвращает True для каждой строки, значение которой отлично от NA (np.NaN).

Проверим, изменилась ли форма:

Как выбрать определенные строки и столбцы из DataFrame?

Меня интересуют имена пассажиров старше 35 лет:

В этом случае подмножество строк и столбцов создается за один раз, и просто использование скобок выбора [] больше не достаточно.

Операторы loc / iloc требуются перед скобками[].

При использовании loc / iloc часть перед запятой - это строки, которые вы хотите выбрать, а часть после запятой - это столбцы.

При использовании имен столбцов, меток строк или условных выражений используйте оператор loc перед скобками выбора [].

Как для части до, так и после запятой можно использовать одну метку, список меток, часть меток, условное выражение или двоеточие.

Используя особенности двоеточия, если хотите выбрать все строки или столбцы.

Меня интересуют строки с 9 по 24 и столбцы с 2 по 4:

Опять же, подмножество строк и столбцов создается за один раз, и просто использование скобок выбора [] больше не достаточно.

Если вас интересуют определенные строки и/или столбцы в зависимости от их положения в таблице, используйте оператор iloc перед [].

При выборе определенных строк и/или столбцов с помощью loc или iloc, новым значениям могут быть назначены выбранные данные.

Например, чтобы присвоить имя anonymous первым 3 элементам третьего столбца:

Обратитесь к разделу руководства пользователя по различным вариантам индексации, чтобы получить более полное представление об использовании loc и iloc.

Полный обзор индексации представлен в руководстве пользователя по индексированию и выбору данных.