MultiIndex в Pandas для многоуровневых или иерархических данных

MultiIndex в Pandas для многоуровневых или иерархических данных

MultiIndex в Pandas — это многоуровневый или иерархический объект, который позволяет вам выбирать более одной строки и столбца в вашем индексе. Это также позволяет вам проводить сложный анализ данных и манипулировать ими, особенно для работы с многомерными данными. В этом уроке я собираюсь изучить функцию MultiIndex в Pandas. Вы можете посмотреть полное видео этого урока в нижней части этого блога.

Идея здесь в том, что у нас есть индекс, который также содержит иерархию. Если вы использовали Pandas раньше, вы знаете, что фреймы данных Pandas содержат индекс , поэтому мы собираемся добавить к нему дополнительные слои. Это упростит как индексацию, так и изменение формы данных, в зависимости от того, действительно ли у вас есть иерархия для ваших данных.

Например, мы собираемся использовать знаменитый набор данных Gapminder, и это действительно MultiIndex. У нас есть иерархия, поэтому континент можно детализировать по странам, и каждая страна может детализировать несколько лет. Таким образом, мы можем манипулировать этим индексом, и когда мы используем этот MultiIndex, программировать будет намного проще. Мы рассмотрим нарезку, а также изменение формы набора данных Gapminder.

Оглавление

Как использовать MultiIndex в Pandas

Мы собираемся использовать набор данных Gapminder. Если у вас это не установлено, вы можете установить Gapminder с помощью PIP. Я также собираюсь привести панд. Я использую дистрибутив Python Anaconda. В этом случае этот Pandas уже будет установлен. Делаем импорт Gapminder, а потом посмотрим на эти данные.

MultiIndex в Pandas для многоуровневых или иерархических данных

Как видите, у нас снова есть индекс или иерархия. Я должен сказать, что у нас есть континент, страна, а затем год. В настоящее время индекс является просто числовым, и мы собираемся установить свой собственный индекс прямо сейчас. Мы собираемся сделать это с помощью Gapminder. Мы собираемся установить индекс. Мы собираемся установить его на континент, страну, а затем год, на месте равный ( = ) true .

MultiIndex в Pandas для многоуровневых или иерархических данных

Это просто сохранение результатов, поэтому нам не нужно вызывать переменную дважды, просто это немного эффективнее. И теперь вы увидите, что у нас есть индекс (контент, страна, год), и это наш мультииндекс.

Пара вещей, которые мы могли бы сделать здесь. Скажем, например, я хотел все на европейском континенте. Я хочу отфильтровать или нарезать этот фрейм данных. Я могу использовать gapminder.loc , а затем ввести Европу. Возможно, вы знакомы с loc. Из других обстоятельств в Pandas это работает намного проще, когда мы делаем это по индексу.

MultiIndex в Pandas для многоуровневых или иерархических данных

Теперь это существует в иерархии. Допустим, нам нужны данные только из Соединенного Королевства. Кажется, что мы могли бы просто нарезать это, но это будет проблемой, потому что когда мы индексируем это, мы привязаны к использованию иерархии. Нам нужно начать с первого уровня, а затем перейти ко второму, третьему и так далее.

Если бы я хотел включить несколько уровней, я мог бы передать их здесь. Я собираюсь выступать в Европе, а затем в Соединенном Королевстве. Я мог бы даже пойти еще дальше и поставить 1997. И теперь мы можем видеть результат этой строки в этом случае.

MultiIndex в Pandas для многоуровневых или иерархических данных

Еще одна приятная особенность MultiIndex в Pandas заключается в том, что намного проще изменить форму данных. Я могу сделать gapminder_pivot , а затем gapminder.unstack . Если мне нужно изменить этот набор данных по какой-то причине, я распечатаю это, и вы увидите, что теперь у нас есть континент, страна, а затем год вместе со столбцами.

MultiIndex в Pandas для многоуровневых или иерархических данных

Теперь, допустим, я хотел сделать это в противоположном направлении. Все, что мне нужно сделать, это развернуть, и мы собираемся сделать gapminder_pivot . Если это распаковка, то это стек gapminder_unpivot.

MultiIndex в Pandas для многоуровневых или иерархических данных

А что, если я захочу избавиться от этого индекса, сбросить его и изменить на что-то другое? Все, что мне нужно сделать в этом случае, — это gapminder_unpivot. Мы собираемся reset_index . Мы собираемся сделать это на месте снова. Мы не должны экономить на себе. Это просто немного эффективнее. Затем запустите gapminder_unpivot.

Распечатайте это, и мы вернемся к нашим исходным данным, и у нас есть индекс. Числовое начало с нуля, потому что Python индексирует с нуля.

MultiIndex в Pandas для многоуровневых или иерархических данных


Python в LuckyTemplates: как установить и настроить
сценарии Python в отчетах о данных LuckyTemplates
LuckyTemplates со сценариями Python для создания таблиц дат

Заключение

Панды изначально были названы в честь панельных данных. Это действительно предназначено для работы с панельными данными, которые представляют собой особый тип данных временных рядов с несколькими категориями. В этом случае наличие иерархии действительно имеет смысл, верно?

Это очень хорошо работает, если вы работаете с уникальными строками и пытаетесь найти несколько столбцов.

Что касается производительности, может случиться так, что индекс не нужен, если вы объединяете, но мы не объединяли здесь. Мы просто работали, обращались, индексировали, изменяли форму и т. д. Однако эффективность кодирования, безусловно, является большим преимуществом.

Вот и все для MultiIndex в Pandas. Я надеюсь, что это то, что вы можете использовать. Сегодня вы узнали кое-что новое о пандах.

Всего наилучшего!


Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Что такое self в Python: примеры из реального мира

Как сохранить и загрузить файл RDS в R

Как сохранить и загрузить файл RDS в R

Вы узнаете, как сохранять и загружать объекты из файла .rds в R. В этом блоге также рассказывается, как импортировать объекты из R в LuckyTemplates.

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

Новый взгляд на первые N рабочих дней — решение для языка кодирования DAX

В этом руководстве по языку программирования DAX вы узнаете, как использовать функцию GENERATE и как динамически изменять название меры.

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

Продемонстрируйте идеи с помощью метода многопоточных динамических визуализаций в LuckyTemplates

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

Введение в фильтрацию контекста в LuckyTemplates

Введение в фильтрацию контекста в LuckyTemplates

В этой статье я пройдусь по контексту фильтра. Контекст фильтра — одна из основных тем, с которой должен ознакомиться любой пользователь LuckyTemplates.

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Лучшие советы по использованию приложений в онлайн-службе LuckyTemplates

Я хочу показать, как онлайн-служба LuckyTemplates Apps может помочь в управлении различными отчетами и аналитическими данными, созданными из различных источников.

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Анализ изменений маржи прибыли с течением времени — аналитика с LuckyTemplates и DAX

Узнайте, как рассчитать изменения вашей прибыли, используя такие методы, как разветвление показателей и объединение формул DAX в LuckyTemplates.

Идеи материализации кэшей данных в DAX Studio

Идеи материализации кэшей данных в DAX Studio

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

Бизнес-отчетность с использованием LuckyTemplates

Бизнес-отчетность с использованием LuckyTemplates

Если вы все еще используете Excel до сих пор, то сейчас самое подходящее время, чтобы начать использовать LuckyTemplates для своих бизнес-отчетов.

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать

Что такое шлюз LuckyTemplates? Все, что тебе нужно знать