Pandas Diff: Вычисление Разницы Между Строками Pandas
В этом руководстве вы узнаете, как использовать метод Pandas diff для вычисления разницы между строками и столбцами. Вы научитесь использовать метод .diff
для расчета разницы между последовательными строками или строками с определенными интервалами (например, каждые семь строк). Также вы узнаете, чем это отличается от метода Pandas .shift
и когда использовать каждый из них. Наконец, вы узнаете, как использовать метод Pandas .diff
для построения графиков ежедневных изменений с помощью Matplotlib.
Краткий ответ: Pandas diff
для вычисления разницы между строками
Оглавление
Понимание метода Pandas diff
Метод diff
в Pandas позволяет найти первую дискретную разность элемента. Например, он позволяет вычислить разницу между строками в DataFrame Pandas – либо между последовательными строками, либо строками с определённым интервалом. Аналогично, он также позволяет вычислять разницу между колонками Pandas (хотя это гораздо менее тривиальная задача, чем предыдущий пример).
По умолчанию, метод Pandas diff будет вычислять разницу между последовательными строками, хотя он предлагает нам гибкость в том, как мы можем рассчитывать наши различия. Давайте рассмотрим метод и два аргумента, которые он предлагает:
Мы видим, что метод diff в Pandas имеет два параметра:
periods=
давайте определим количество периодов (строк или столбцов), на которое нужно сместиться, чтобы вычислить разницуaxis=
позволяет нам определить, рассчитывать разность по строкам (axis=0
) или по столбцам (axis=1
)
Теперь, когда вы хорошо понимаете, как работает метод diff в Pandas, давайте загрузим пример датафрейма для дальнейшего изучения.
Загрузка образца Pandas Dataframe
Чтобы следовать этому учебному пособию, не стесняйтесь загрузить датафрейм ниже, скопировав и вставив код в ваш любимый редактор кода. Конечно, вы можете использовать свои собственные данные, хотя ваши результаты, естественно, будут отличаться.
Видно, что у нас есть датафрейм с двумя столбцами: один содержит даты, а другой — значения продаж. Мы смогли сгенерировать наш столбец дат, используя функцию Pandas date_range, которую я подробно рассматриваю в этом руководстве.
В следующем разделе вы узнаете, как вычислить разницу между строками в DataFrame Pandas.
Вычисление разницы между строками Pandas Dataframe
Метод diff
в Pandas позволяет легко вычитать одну строку из другой в DataFrame. По умолчанию, Pandas вычисляет разницу между последующими строками. Давайте посмотрим, как мы можем использовать этот метод для расчета разницы между строками столбца Sales:
Мы видим, что тут Pandas сделал несколько вещей
Он вычислил разницу между двумя строками. Это сделано путем вычитания нижней строки из верхней строки.
Также видно, что в столбце Sales осталось одно значение
NaN
. Это происходит потому, что первое значение не из чего вычитать. КоличествоNaN
всегда равно количеству периодов, которые мы рассчитываем.
Может быть, вы захотите назначить эту разницу в новый столбец. Именно этому вы научитесь в следующем разделе.
Присвоить разницу между строками Pandas Dataframe новому столбцу
Во многих случаях вы не захотите терять свои исходные данные. Поэтому очень полезно назначить разницу между строками в новый столбец датафрейма. Мы можем сделать это, напрямую присвоив разницу новому столбцу. Давайте посмотрим, как это выглядит.
Таким образом, мы сохраняем исходные данные, но также получаем более глубокое понимание наших данных, отображая различия.
Вычисление разницы между строками Pandas через разные интервалы
Вы можете не всегда хотеть рассчитывать разницу между последовательными строками. Следуя нашему примеру, вы можете захотеть узнать, какие были продажи неделю назад, по сравнению с продажами в определенный день. Мы достигаем этого, изменяя параметр periods=
на ту периодичность, которую мы хотим.
Давайте посмотрим, как рассчитать разницу между периодичностью в семь дней:
Теперь мы можем вычислить разницу между строкой 8 и строкой 1, строкой 9 и строкой 2 и так далее. Из-за этого первые семь строк будут отображать значение NaN.
В следующем разделе вы узнаете, как использовать параметр axis=
, чтобы вычитать столбцы.
Вычисление разницы между столбцами Pandas
Pandas предлагает множество способов вычитания столбцов. Один из этих способов — это метод diff в Pandas. Однако это немного необычный подход и может быть не самым интуитивным. Я рассмотрю его для полноты, хотя позже предложу предпочтительный метод.
Чтобы сделать это более логичным, давайте добавим еще один столбец в наш датафрей.
С этим подходом связаны некоторые нюансы:
Вы не можете комбинировать типы данных
В итоге у вас остается бесполезный столбец, содержащий только значения
NaN
Вместо этого подхода, возможно, будет более разумно просто вычесть столбцы напрямую:
Этот подход является более интуитивным и понятным способом для вычисления разницы между столбцами
Различия между Pandas Diff и Pandas Shift
Pandas предлагает ряд функций, связанных с регулировкой строк и позволяет вычислять разницу между ними. Например, метод shift
в Pandas позволяет смещать DataFrame в различных направлениях, например вверх и вниз. Благодаря этому, мы можем легко использовать метод shift
для вычитания между строками.
Метод shift
в Pandas предоставляет возможность предварительного просмотра данных перед вычислением разницы между двумя строками. Метод diff
просто вычисляет разницу, скрывая сам процесс вычислений. Используйте diff
, если вас интересует только разница, и используйте shift
, если необходимо сохранить значения, например, для расчета процентного изменения между строками.
Построение ежедневных различий в Pandas и Matplotlib
В этом последнем разделе вы узнаете, как легко построить график различий между последовательными строками в DataFrame Pandas. Для этого загрузим фрейм данных с прогнозом погоды, чтобы показать, как она изменяется в семидневный период.
Для этого мы импортируем matplotlib.pyplot как plt, который позволяет нам визуализировать данные. Мы также загрузим данные с сайта NOAA с некоторыми образцами данных.
Давайте посмотрим, как это работает
Это возвращает следующий граф
Здесь мы можем видеть, что наши температуры колеблются в сезонных паттернах, что делает это визуализацию очень полезной.
Заключение
В этом уроке вы узнали, как вычислить разницу между строками в DataFrame, используя метод diff в Pandas. Вы изучили, как изменить периодичность в ваших вычислениях и как назначать значения в новый столбец. Наконец, вы узнали, как вычислить разницу между столбцами в Pandas, а также более интуитивный метод для этого. В завершение вы научились использовать Pandas и matplotlib для визуализации периодических различий.
Чтобы узнать больше о методе Pandas diff, ознакомьтесь с официальной документацией здесь.
Похожие статьи
Чтобы узнать больше, ознакомьтесь со следующими статьями по теме:
4 способа расчета кумулятивной суммы Pandas
Pandas Dataframe в CSV-файл – экспорт с использованием .to_csv()
Pandas: итерация по строкам Pandas Dataframe
Дисперсия Pandas: расчет дисперсии столбца Pandas Dataframe
Last updated