Отклонение от среднего значения для будних и выходных дней на дневных данных в фрейме данных - PullRequest
0 голосов
/ 29 мая 2020

У меня есть некоторые дневные данные, и я использую sh для вычисления отклонения каждой точки данных от его среднемесячного значения, но я хочу различать среднемесячное значение между будним и выходным днями.

некоторые образцы данных:

import pandas as pd
import numpy as np
from datetime import datetime, timedelta
date_today = datetime.now()
days = pd.date_range(date_today, date_today + timedelta(100), freq='D')
np.random.seed(seed=1111)
data = 66*np.random.randint(1, high=100, size=len(days))/100
df = pd.DataFrame({'Date': days, 'vals': data})
df = df.set_index('Date')
print(df)

Теперь, если я считал все дни одинаковыми, я могу сделать это:

df['valdifftoavg']= df['vals'].sub(df.resample("M")['vals'].transform('mean'))

Но я хочу различать guish, поэтому, если ежедневные данные - это будний день, вычтите среднее значение рабочего дня этого месяца, а если это выходной, вычтите среднее значение выходного дня этого месяца.

1 Ответ

1 голос
/ 29 мая 2020

Я бы сделал:

is_weekend = df.index.weekday >= 5

# groupby month and is_weekend
means = (df.groupby([df.index.to_period('M'),is_weekend])
           ['vals'].transform('mean')
        )

df['deviation'] = df['vals'] - means
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...