数据框中每日数据与工作日和周末平均值的偏差
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据框中每日数据与工作日和周末平均值的偏差相关的知识,希望对你有一定的参考价值。
我有一些日常数据,我想计算每个数据点与月平均值的偏差,但我想区分工作日和周末的月平均值。
一些样本数据。
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'))
但我想区分,所以如果每天的数据是工作日,就减去该月的工作日平均值 如果是周末,就减去该月的周末平均值。
答案
我会做。
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
以上是关于数据框中每日数据与工作日和周末平均值的偏差的主要内容,如果未能解决你的问题,请参考以下文章