python - 数据框中每日数据与工作日和周末的偏差
问题描述
我有一些每日数据,我希望计算每个数据点与其月平均值的偏差,但我想区分工作日和周末之间的月平均值。
一些样本数据:
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
推荐阅读
- c - HAL STM32 Uart接收中断:复位接收缓冲区问题
- c - 通过 log k 进行索引查找
- android - Android - Material.io - TextInputLayout 在 LinearLayout 中不起作用
- kubernetes - 如何使用 Kubernetes 删除孤立的副本集?
- typescript - 如何获取新的图像路径
- javascript - 在 JQuery 选择器中添加变量的问题
- linux - 如何在安装过程中向 Nemesis 提供 Libnet 标头?
- file - 如何在 fortran 中声明 MPI_File_set_view 所需的整数 (MPI_OFFSET_KIND) 以防止写入大数据时溢出?
- c# - 验证嵌套列表的唯一值,而无需多次循环相同的列表
- powerbi - SQL 到 DAX 的转换