python - Pandas 时间序列用周末均值生成的一个值替换周末

标签 python pandas time-series

我有一个多列 pandas 数据框,每天都有行。 现在我想用一行中的平均值替换每个周末。

即(Fr,Sa,Su).resample().mean() --> (周末)

甚至不知道从哪里开始。

提前谢谢您。

最佳答案

import pandas as pd
from datetime import timedelta
# make some data
df = pd.DataFrame({'dt': pd.date_range("2018-11-27", "2018-12-12"), "val": range(0,16)})

# adjust the weekend dates to fall on the friday
df['shifted'] = [d - timedelta(days = max(d.weekday() - 4, 0)) for d in df['dt']]

# calc the mean
df2 =  df.groupby(df['shifted']).val.mean()
df2

#Out[105]: 
#shifted
#2018-11-27     0
#2018-11-28     1
#2018-11-29     2
#2018-11-30     4
#2018-12-03     6
#2018-12-04     7
#2018-12-05     8
#2018-12-06     9
#2018-12-07    11
#2018-12-10    13
#2018-12-11    14
#2018-12-12    15

关于python - Pandas 时间序列用周末均值生成的一个值替换周末,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53801358/

相关文章:

python - OpenAI 检索文件内容

python - 使用 BeautifulSoup 进行网页抓取返回 NoneType

python - 按一列中的值对我的数据框进行分组?

ggplot2中的光栅时间序列图

keras - LSTM 时间序列产生偏移预测?

r - 如何使用 nnetar 进行样本外的一步预测?

python - 转换已存在的二进制文件的字节序类型

python - 如何以全自动方式在 Linux 上安装 Python 解释器

python - Pandas 替换多个值

python - 如何将一列中最后一次更改的索引分配给每一行?