1.移动窗口函数:rolling(window=n, min_periods=None, center=False)
window等于某个标量n,则意味着从当前下标位置向前数n
min_periods表示窗口里的最小元素数量,默认min_periods=window
center表示是否以当前元素为中心移动窗口,默认False
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5, 4).round(3),columns = ['A', 'B', 'C', 'D'])
print(df.rolling(window=3).mean())
print(df.rolling(window=3,center=True).mean())
两个print根据center的值变化输出结果不同:
第一个是不以当前元素为中心:
第二个是以当前元素为中心:
closed参数具体可查看:图解pandas窗口函数rolling - 知乎 (zhihu.com)
(好难,理解无能)
2.扩展窗口函数:expanding(min_periods=n, center=False, axis=0)
min_periods=n表示至少n个值求一次函数值(在实际运用中未达到n值时无结果用NaN表示)
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(5, 4).round(3),columns = ['A', 'B', 'C', 'D'])
print(df)
print(df.expanding(min_periods=2).sum())
结果如下:
上述代码要求至少2个值求一次sum,因此第一行是NaN(未满足条件)
3.加权移动函数:ewm(),必须指定加权元素 span、com、halflife 、alpha ——>学不懂跳过先