pandas.rolling()函數(shù)提供滾動(dòng)窗口計(jì)算的功能 (版本0.18.0中的新功能)
DataFrame.rolling(window,min_periods = None,freq = None,center = False,win_type = None,on = None,axis = 0,closed = None)
部分參數(shù)說(shuō)明:
window:移動(dòng)窗口的大小,用于計(jì)算統(tǒng)計(jì)量的觀測(cè)數(shù).如果是偏移量類(lèi)型,那么這將是每個(gè)窗口的時(shí)間段。
min_periods:窗口中的最小觀察數(shù),默認(rèn)是窗口大小婶溯,如果窗口非空值數(shù)量小于此數(shù),則取NAN
center:將標(biāo)簽設(shè)置在窗口的中心(即將結(jié)果放在窗口的中心位置,默認(rèn)是最右側(cè)位置)
axis: int或string主胧,0(列)為默認(rèn),1(行)
示例:
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'A': [0, 1, 2, np.nan, 4],'B': [0, np.nan,1, 2, 4],'C': [3, 7, 2, np.nan, 4],'D': [0,6, 2, 4, np.nan]})
print(df1)
A B C D
0 0.0 0.0 3.0 0.0
1 1.0 NaN 7.0 6.0
2 2.0 1.0 2.0 2.0
3 NaN 2.0 NaN 4.0
4 4.0 4.0 4.0 NaN
df2=df1.rolling(3, center=True,min_periods=1).sum()
print(df2)
A B C D
0 1.0 0.0 10.0 6.0
1 3.0 1.0 12.0 8.0
2 3.0 3.0 9.0 12.0
3 6.0 7.0 6.0 6.0
4 4.0 6.0 4.0 4.0
df1.update(df2,overwrite=False)#overwrite默認(rèn)是TRUE习勤,全部替換踪栋。False只替換原始數(shù)據(jù)中的NAN
print(df1)
A B C D
0 0.0 0.0 3.0 0.0
1 1.0 1.0 7.0 6.0
2 2.0 1.0 2.0 2.0
3 6.0 2.0 6.0 4.0
4 4.0 4.0 4.0 4.0