使用滚动平均值旋转 table
Pivot table with rolling average
我尝试创建一个枢轴 table 来获得一个时间序列,其中两天的滚动平均值随时间变化。为此,我将 pivot_table() 与 aggfunc='mean' 一起使用,但到目前为止,我只能为每一天创建一个平均值,而没有考虑前一天。这将是一个简单的例子 data.frame:
df = pd.DataFrame({
'Date':['2021-01-01', '2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-02', '2021-01-02', '2021-01-03', '2021-01-03', '2021-01-03'],
'Name':['Tim', 'Tim', 'Ben', 'Leo', 'Tim', 'Ben', 'Leo', 'Leo', 'Ben', 'Tim'],
'Ratings':[9.0, 8.0, 5.0, 3.0, 'NaN', 'NaN', 6, 5, 3, 5]})
这是我尝试过的方法,但我不知道如何将 2 的滚动 window 纳入其中,同时考虑前一天的评分平均值。
df.pivot_table(
values='Ratings', index='Date', columns='Name',
fill_value=0, aggfunc='mean')
这将是我努力实现的目标。
df = pd.DataFrame({
'Date':['2021-01-01', '2021-01-02', '2021-01-03'],
'Tim':[8.5, 8.5, 5],
'Ben':[5, 5, 3],
'Leo':['NaN', 4.5, 4.66],})
非常感谢您的帮助:)
你的情况
out = df.pivot_table(
values='Ratings', index='Date', columns='Name',
aggfunc='mean').ffill(limit=1)
Name Ben Leo Tim
Date
2021-01-01 5.0 NaN 8.5
2021-01-02 5.0 4.5 8.5
2021-01-03 3.0 5.0 5.0
我尝试创建一个枢轴 table 来获得一个时间序列,其中两天的滚动平均值随时间变化。为此,我将 pivot_table() 与 aggfunc='mean' 一起使用,但到目前为止,我只能为每一天创建一个平均值,而没有考虑前一天。这将是一个简单的例子 data.frame:
df = pd.DataFrame({
'Date':['2021-01-01', '2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-02', '2021-01-02', '2021-01-03', '2021-01-03', '2021-01-03'],
'Name':['Tim', 'Tim', 'Ben', 'Leo', 'Tim', 'Ben', 'Leo', 'Leo', 'Ben', 'Tim'],
'Ratings':[9.0, 8.0, 5.0, 3.0, 'NaN', 'NaN', 6, 5, 3, 5]})
这是我尝试过的方法,但我不知道如何将 2 的滚动 window 纳入其中,同时考虑前一天的评分平均值。
df.pivot_table(
values='Ratings', index='Date', columns='Name',
fill_value=0, aggfunc='mean')
这将是我努力实现的目标。
df = pd.DataFrame({
'Date':['2021-01-01', '2021-01-02', '2021-01-03'],
'Tim':[8.5, 8.5, 5],
'Ben':[5, 5, 3],
'Leo':['NaN', 4.5, 4.66],})
非常感谢您的帮助:)
你的情况
out = df.pivot_table(
values='Ratings', index='Date', columns='Name',
aggfunc='mean').ffill(limit=1)
Name Ben Leo Tim
Date
2021-01-01 5.0 NaN 8.5
2021-01-02 5.0 4.5 8.5
2021-01-03 3.0 5.0 5.0