熊猫滚动Python创建新列

时间:2020-09-23 01:44:32

标签: python pandas

我有一个来自excel文件的数据框,其数据如下:

     A                     B                        Sum A       Sum B
0                                           
1   235353.21333333332                      
2    89160.59999999999                      
3   188382.98666666663                      
4                        104677.1466666667  
5                       207723.25333333333  
6                       170128.02666666667  
7                                 165287.5  
8   44863.200000000004                      
9                                177096.72  
10   97687.71666666666                          655447.7167    824912.6467
11  113207.76333333334                          533302.2667    824912.6467
12                                195151.2      444141.6667    1020063.847
13                       151408.4433333333        255758.68     1171472.29
14                       50865.66999999999        255758.68    1117660.813 
15                       84536.19000000002        255758.68      994473.75
16  217555.28666666665                          473313.9667    824345.7233
17   90395.21666666666                          563709.1833    659058.2233
18           126856.21                          645702.1933    659058.2233
19  125190.61999999998                          770892.8133    481961.5033

在excel文件中,要在第10行获得总和A,它使用=SUM(A2:A12),而要在第10行获得总和B,它使用=SUM(B2:B11)。现在,我正在尝试使用.rolling重新创建它,但它会导致 DataError:没有聚合的数字类型。以下是我的代码,用于重新创建总和A和总和B:

df['Sum A'] = df['A'].rolling(10).sum()
df['Sum C'] = df['B'].rolling(10).sum()

任何建议我应该怎么做才能在Aum和Bum中重新创建值? 预先谢谢你

1 个答案:

答案 0 :(得分:1)

您可以尝试:

df['Sum A'] = pd.to_numeric(df['A'], errors='coerce').fillna(0).rolling(10).sum()