Python滚动平均数Dataframe行

问题描述 投票:-1回答:1

所以基本上我只需要有关如何计算数据帧每行24个月滚动平均值的建议。每行表示一个特定的城市,列是该月的相应销售额。如果有人能帮我解决这个问题,我将不胜感激

编辑:很明显我没能正确解释自己。我知道pandas内置了一个滚动方法。问题是我不想采用单列的移动平均值,我想连续使用列。

样本数据集

州 - M1 - M2 - M3 - M4 - ..... - M48

UT - 40 - 20 - 30 - 60 - 60

CA - 30 - 60 - 20 - 40 - 70

所以我想找到最近24个月每个州的滚动平均值(M24-M48列)

我尝试过的:

Data['24_Month_Moving_Average'] = Data.rolling(window=24, win_type='triang', min_periods=1, axis=1).mean()

错误:错过的项目数量为139,展示位置意味着1

编辑2,示例数据集:

Data = pd.Dataframe({'M1':[1, 2], 'M2':[3,5], 'M3':[5,6]}, index = ['UT', 'CA'])

# need code that will add column that is the rolling 24 month average for each state

Picture of Dataframe

python pandas dataframe rolling-computation
1个回答
0
投票

您可以将函数rolling()mean()一起使用,并指定您想要的参数window, min_periods如下:

df.col1.rolling(n, win_type='triang', min_periods=1).mean()

不知道你的预期输出是什么,但是列出一个样本用apply()显示每行生成滚动,使qazxsw poi列成为你的数据帧的索引,希望它有所帮助:

state

import pandas as pd df = pd.DataFrame({'B': [6, 1, 2, 20, 4],'C': [1, 1, 2, 30, 4],'D': [10, 1, 2, 5, 4]}) def test_roll(data): return(data.rolling(window=2, win_type='triang', min_periods=1, axis=0).mean()) print(df.apply(test_roll, axis=1))

© www.soinside.com 2019 - 2024. All rights reserved.