Python 如何使用截至某一日期的所有历史数据滚动应用函数?
我有一个月度时间序列数据框架,并希望使用所有过去的数据进行滚动,例如,我有1990-01-01到2020-01-01的数据。那么我想从1999年12月31日开始做:Python 如何使用截至某一日期的所有历史数据滚动应用函数?,python,pandas,time-series,Python,Pandas,Time Series,我有一个月度时间序列数据框架,并希望使用所有过去的数据进行滚动,例如,我有1990-01-01到2020-01-01的数据。那么我想从1999年12月31日开始做: df = pd.DataFrame() df['1990-01-01':'1999-12-31'].apply(myfun) df['1990-01-01':'2000-01-31'].apply(myfun) df['1990-01-01':'2000-02-29'].apply(myfun) df['1990-01-01':'2
df = pd.DataFrame()
df['1990-01-01':'1999-12-31'].apply(myfun)
df['1990-01-01':'2000-01-31'].apply(myfun)
df['1990-01-01':'2000-02-29'].apply(myfun)
df['1990-01-01':'2000-03-31'].apply(myfun)
我的数据是每月一次的,所以考虑到每个月都是连续的,所以应该更简单。这将如何与滚动工作?我没有找到明确的方法。滚动功能可以应用于熊猫系列。您可以计算滚动平均值,或您需要的任何其他函数。例如:
import pandas as pd
serie = pd.Series([1, 2, 0, 0, 1, 2, 0, 0])
serie.rolling(window=3).mean()
输出:
出[19]:
0南
1楠
2 1.000000
3 0.666667
4 0.333333
5 1.000000
6 1.000000
7 0.666667
数据类型:64
它可以与lag和groupby组合用于不同的时间序列计算
在您的示例中,您可以执行以下操作:
df['your_column_with_sales_or_any_values'].rolling(window=3).mean()
您需要为您的问题设置一个方便的窗口滚动功能可以应用于熊猫系列。您可以计算滚动平均值,或您需要的任何其他函数。例如:
import pandas as pd
serie = pd.Series([1, 2, 0, 0, 1, 2, 0, 0])
serie.rolling(window=3).mean()
输出:
出[19]:
0南
1楠
2 1.000000
3 0.666667
4 0.333333
5 1.000000
6 1.000000
7 0.666667
数据类型:64
它可以与lag和groupby组合用于不同的时间序列计算
在您的示例中,您可以执行以下操作:
df['your_column_with_sales_or_any_values'].rolling(window=3).mean()
您需要为您的问题设置一个方便的窗口
df.expanding().apply(myfunc)
看起来你在找我
df.expanding().apply(myfunc)