是的,我从这个问题修改了我的问题中的 pandas 数据框示例:但是这次问题不同import pandas as pdimport numpy as npd=({'A':['2020-01-01','2020-01-02','2020-01-03','2020-01-04','2020-01-05','2020-01-06','2020-01-07','2020-01-08','2020-01-09','2020-01-10'],'B':[100,110,120,175,164,169,155,153,156,200]})df=pd.DataFrame(d)            A    B0  2020-01-01  1001  2020-01-02  1102  2020-01-03  1203  2020-01-04  1754  2020-01-05  1645  2020-01-06  1696  2020-01-07  1557  2020-01-08  1538  2020-01-09  1569  2020-01-10  200我知道 pandas 滚动窗口代码如下(对于我的情况): df['sums']=df['B'].rolling(window=3, center=False).sum()            A    B   sums0  2020-01-01  100    NaN #Here's the question:1  2020-01-02  110    NaN #Why the rolling windows NaN is just 2, but the rolling window code is 32  2020-01-03  120  330.03  2020-01-04  175  405.04  2020-01-05  164  459.05  2020-01-06  169  508.06  2020-01-07  155  488.07  2020-01-08  153  477.08  2020-01-09  156  464.09  2020-01-10  200  509.0Name: sum, dtype: float64我想把它变成这样:0  2020-01-01  100    NaN # To display rolling window1  2020-01-02  110    NaN # Like the code2  2020-01-03  120    NaN # Not 2 but 3 NaNs3  2020-01-04  175  330.04  2020-01-05  164  405.05  2020-01-06  169  459.06  2020-01-07  155  508.07  2020-01-08  153  488.08  2020-01-09  156  477.09  2020-01-10  200  464.010 2020-01-11  NaN  509.0有办法做到吗?我尝试将NaN=np.nan其添加为这样:1  2020-01-02  110    NaN2  2020-01-03  120    NaN 3  2020-01-04  175  330.0..9  2020-01-10  200  464.010 2020-01-11  NaN  509.00  2020-01-01  100    NaN有什么办法解决这个问题吗?
                    
                    
                1 回答
 
                    
                    
                            波斯汪
                            
                                
                            
                        
                        
                                                
                    TA贡献1811条经验 获得超4个赞
该系列的开头有两个NaN,因为此时您没有足够的数据进行滚动(1 和 2 而不是 3)。从你做的行开始3。
如果您想3开始NaN,请使用以下链接链接您的滚动代码shift:
df['sums']=df['A'].rolling(window=3, center=False).sum().shift()
输出:
A sums
0 100 NaN
1 110 NaN
2 120 NaN
3 175 330.0
4 164 405.0
5 169 459.0
6 155 508.0
7 153 488.0
8 156 477.0
9 200 464.0
添加回答
举报
0/150
	提交
		取消
	