繁体   English   中英

数据帧行的Python滚动平均值

[英]Python Rolling Mean of Dataframe row

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

编辑:显然我没有正确解释自己。 我知道熊猫有一个内置的滚动方法。问题是我不想取单列的移动平均值,我想取一行中的列。

样本数据集

状态 - 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

数据框图片

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

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

不知道什么应该是您的预期输出,但列出一个示例以显示每行的 apply() 生成滚动,使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))

pandas.DataFrame.rolling

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM