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