Изменение Python Pandas ежемесячно по сравнению с прошлым годом, если текущий месяц является неполнымPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Изменение Python Pandas ежемесячно по сравнению с прошлым годом, если текущий месяц является неполным

Сообщение Anonymous »

Я хочу рассчитать процентное изменение по сравнению с прошлым годом для данных на уровне месяца, принимая во внимание, что последний (текущий) период является неполным.
Об этом уже спрашивали: повторная выборка и расчет года за год. год с частичными данными, но я не могу понять полученный ответ.
Мой код следующий:

Код: Выделить всё

import pandas as pd
import numpy as np

np.random.seed(555)

# Create a sample dataframe
df_input = pd.DataFrame({
'order_date': pd.date_range(start='2022-01-01', end='2024-07-10'),
'customers': np.random.randint(0, 100, size=(922, )),
'orders': np.random.randint(0, 100, size=(922, ))
})

df = df_input.copy()
df.set_index('order_date',inplace=True)
df_monthly = df.resample('ME').sum()

print(df_monthly.tail())

customers  orders
order_date
202403           1358    1513
202404           1581    1419
202405           1584    1565
202406           1456    1652
202407            389     378

Теперь я рассчитываю процентное изменение за каждый месяц и добавляю его обратно в исходный набор данных:

Код: Выделить всё

yoy_change = df_monthly.pct_change(12).mul(100)

for column in df_monthly.columns:
df_monthly[f'{column}_pct_change'] = yoy_change[column]

customers  orders  customers_pct_change  orders_pct_change
order_date
202403           1358    1513             -6.215470         -13.095922
202404           1581    1419             -1.801242         -11.423221
202405           1584    1565             22.885958           3.232190
202406           1456    1652              7.772021          -6.508206
202407            389     378            -78.460687         -76.330620
Однако повторная выборка pandas суммирует неполный месяц с июля 2024 года (до 10-го числа) и сравнивает его с полным месяцем июля 2023 года прошлого года при расчете процентного изменения. В результате получается очень отрицательное число, хотя это не соответствует действительности (поскольку мы сравниваем полный месяц с неполным).
Например, количество клиентов за июль 2023 года. «до 10-го числа» было 513, поэтому годовой процент за июль 2024 года должен быть -24, а не -78.

Подробнее здесь: https://stackoverflow.com/questions/787 ... is-partial
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Gijgo Datepicker Дата с двузначным годом, преобразованная в 20-й век
    Anonymous » » в форуме Jquery
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Как установить time_point system_lock с годом, месяцем, днем
    Anonymous » » в форуме C++
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Простая нумерация строк в Python Pandas ежемесячно
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • Простая нумерация строк в Python Pandas ежемесячно
    Anonymous » » в форуме Python
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Простая нумерация строк в Python Pandas ежемесячно
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»