Open in Colab


Подписка на онлайн-обучение telegram

Сортировать строки таблицы

Я хочу отсортировать данные по возрасту пассажиров:

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

Series.sort_values() приводит к тому, что строки в таблице сортируются в соответствии с определенными столбцами. Индекс будет следовать порядку строк.

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

Перевод таблицы из длинного формата в широкий

Этот блокнот использует данные о содержании в воздухе $NO_2$ и твердых частиц размером менее 2,5 микрометров, предоставленные организацией openaq и использующие модуль py-openaq.

см. Частицы РМ2.5: что это, откуда и почему об этом все говорят

см. Города и взвеси: концентрация вредных частиц в Москве повысилась

Набор данных air_quality_long.csv содержит значения $NO_2$ и $PM_{2.5}$ для измерительных станций FR04014, BETR801 и London Westminster соответственно в Париже, Антверпене и Лондоне.

Набор данных о качестве воздуха имеет следующие столбцы:

Данные о качестве воздуха предоставляются в длинном формате (long format), где каждое наблюдение находится в отдельной строке, а каждая переменная - в отдельном столбце таблицы данных. long/narrow формат также известен как формат аккуратных данных (tidy data format).

Давайте использовать небольшое подмножество данных о качестве воздуха. Мы ориентируемся на данные $NO_2$ и используем только первые два измерения каждого местоположения (т.е. заголовок каждой группы). Подмножество данных будет называться no2_subset:

Я хочу, чтобы значения для трех станций были отдельными столбцами рядом друг с другом.

Функция pivot_table() изменяет форму данных: требуется одно значение для каждой комбинации индекса/столбца.

Поскольку pandas поддерживает построение графика для нескольких столбцов, преобразование из длинного (long) формата таблицы в широкий (wide) позволяет одновременно отображать различные временные ряды:

Если параметр index не определен, используется существующий индекс (метки строк).

Для получения дополнительной информации о функции pivot() см. Раздел руководства пользователя по повороту объектов DataFrame.

Сводная таблица

Я хочу узнать среднюю концентрацию $NO_2$ и $PM_{2.5}$ для каждой из станций в виде таблицы:

В случае pivot() данные только переставляются.

Когда необходимо агрегировать несколько значений (в данном конкретном случае значения на разных временных шагах) pivot_table() предоставляет функцию агрегации (например, mean), объединяющую эти значения.

Сводная таблица является хорошо известной концепцией в программах для работы с электронными таблицами. Если вас интересуют сводные столбцы для каждой переменной в отдельности, задайте параметр margins=True:

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

pivot_table() напрямую связан с groupby(). Тот же результат может быть получен путем группировки parameter и location:

air_quality.groupby(["parameter", "location"]).mean()

Посмотрите groupby() в сочетании с unstack() в руководстве пользователя.

От широкого к длинному формату

Начинем с широкоформатной (wide) таблицы, созданной в предыдущем разделе:

Я хочу собрать все измерения качества воздуха $NO_2$ в одном столбце (long format):

Метод pandas.melt() преобразует таблицу данных из широкого формата в длинный формат. Заголовки столбцов становятся именами переменных во вновь созданном столбце.

Решение является краткой версией применения pandas.melt(). Метод будет растворять все столбцы, не упомянутые в id_vars вместе в две колонки: колонки A с именами заголовков столбцов и столбца с самим значениями. Последний столбец получает имя по умолчанию value.

Метод pandas.melt() более подробно:

Результат такой же, но более детально определенный:

Следовательно, аргументы value_name и var_name являются просто пользовательскими именами для двух сгенерированных столбцов. Столбцы для растворения определяются параметрами id_vars и value_vars.

Преобразование из широкого формата в длинный с pandas.melt() объясняется в разделе руководства пользователя по изменению формы расплавом.

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

Подписка на онлайн-обучение telegram