Как инновации в технологиях расширяют возможности сектора разработки приложений? 1

Как запросить ваш фрейм данных Pandas

Исходный узел: 1017694

Как запросить ваш фрейм данных Pandas

Взгляд специалиста по данным на SQL-подобные функции Python.


By Мэтью Пшибила, Старший специалист по данным в Favor Delivery



Фото Брюс Хонг on Unsplash [1].

Содержание

 
 

  1. Введение
  2. Несколько условий
  3. Слияние нескольких определенных столбцов
  4. Обзор
  5. Рекомендации

Введение

 
 
Независимо от того, переходите ли вы от инженера данных / аналитика данных или хотите стать более эффективным специалистом по данным, запрос вашего фрейма данных может оказаться весьма полезным методом возврата определенных строк, которые вы хотите. Важно отметить, что для панд существует специальная функция запроса с соответствующим названием, query. Однако вместо этого я буду обсуждать другие способы, которыми вы можете имитировать запросы, фильтрацию и слияние ваших данных. Мы представим общие сценарии или вопросы, которые вы бы задали своим данным, и вместо SQL мы сделаем это с помощью Python. В следующих абзацах я опишу несколько простых способов запроса строк для вашего фрейма данных pandas с помощью языка программирования Python.

Несколько условий

 
 



Образец данных. Скриншот от Автора [2].

 

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

Пример нескольких условий по существу ответит на конкретный вопрос, как и при использовании SQL. Вопрос в том, какой процент наших данных приходится на мужской пол. OR человек, родившийся в период с 2010 по 2021 год.

Вот код, который решит этот вопрос (есть несколько способов ответить на этот вопрос, но вот мой конкретный способ сделать это):

print(“Percent of data who are Males OR were born between 2010 and 2021:”, 100*round(df[(df[‘Gender’] == ‘M’) | (df[‘Birthdate’] >= ‘2010–01–01’) & (df[‘Birthdate’] <= ‘2021–01–01’)][‘Gender’].count()/df.shape [0],4), “%”)

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



Код условий. Скриншот автора [3].

 

Вот порядок команд, которые мы выполнили:

  • Вернуть строки с мужчиной Gender
  • Включите OR функция |
  • Вернуть ряды Birthdate > 2010 и 2021
  • Объедините все это, а затем разделите на общее количество строк.

Как видите, этот код похож на то, что вы видели в SQL. Я лично думаю, что в пандах проще, потому что там может быть меньше кода, а также возможность визуально видеть весь код в одном удобном месте, без необходимости прокручивать вверх и вниз (но этот формат просто мое предпочтение).

Слияние нескольких определенных столбцов

 
 



Результат объединения кадра данных. Скриншот автора [4].

 

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

У нас есть наш первый фрейм данных, который называется df, затем мы объединяем наши столбцы во втором фрейме данных, df2. Вот этот код для достижения ожидаемого результата:

merged_df = df.merge(df2, how=’inner’, left_on=cols, right_on=cols )

Чтобы лучше представить это слияние и код, я представил скриншот ниже. Вы видите, как выглядит второй кадр данных ниже, с First и Last имена, как и в первом фрейме данных, но с новым столбцом, Numeric. Затем у нас есть определенные столбцы, которые мы хотели объединить, возвращая столбцы GenderBirthdate, И новый Numeric также колонка. Столбцы представляют собой список столбцов, который называется cols.



Объединение фрейма данных. Скриншот автора [5].

 

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

Обзор

 
 
В этом руководстве мы увидели два общих вопроса или запроса, которые вы бы выполнили в SQL, но вместо этого выполнили их с кадрами данных pandas в Python.

Подводя итог, вот два сценария, с которыми мы работали:

  1. Возврат процента строк от общего набора данных из нескольких условий
  2. Слияние нескольких определенных столбцов для возврата окончательного фрейма данных с новым столбцом

Надеюсь, моя статья была вам интересна и полезна. Пожалуйста, не стесняйтесь комментировать ниже, если вы согласны или не согласны с этими методами. Почему или почему нет? Их, безусловно, можно уточнить еще больше, но я надеюсь, что смог пролить свет на некоторые способы использования pandas и Python вместо SQL. Спасибо за чтение!

Не стесняйтесь проверить мой профиль, Мэтт Пшибилаи другие статьи, а также свяжитесь со мной в LinkedIn.

Я не связан с этими компаниями.

 
Рекомендации

[1] Автор фото Брюс Хонг on Unsplash(2018)

[2] М. Пшибыла, пример скриншота данных, (2021)

[3] М. Пшибыла, скриншот кода условий, (2021)

[4] М. Пжибыла, снимок экрана с результатами объединенного фрейма данных (2021 г.)

[5] М. Пшибыла, снимок экрана слияния фрейма данных (2021 г.)

 
Bio: Мэтью Пшибила является старшим специалистом по данным в Favor Delivery и внештатным техническим писателем, особенно в области науки о данных.

Оригинал, Перемещено с разрешения.

Связанный:

Источник: https://www.kdnuggets.com/2021/08/query-pandas-dataframe.html

Отметка времени:

Больше от КДнаггетс