为了账号安全,请及时绑定邮箱和手机立即绑定

如何像它的代码一样显示pandas滚动窗口?

如何像它的代码一样显示pandas滚动窗口?

慕勒3428872 2023-10-11 22:50:43
是的,我从这个问题修改了我的问题中的 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


查看完整回答
反对 回复 2023-10-11
  • 1 回答
  • 0 关注
  • 88 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信