我有一个多列 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/