¿Cómo calcular la sum acumulada de filas N anteriores en pandas?

Estoy trabajando con pandas, pero no tengo mucha experiencia. Tengo el siguiente DataFrame:

A 0 NaN 1 0.00 2 0.00 3 3.33 4 10.21 5 6.67 6 7.00 7 8.27 8 6.07 9 2.17 10 3.38 11 2.48 12 2.08 13 6.95 14 0.00 15 1.75 16 6.66 17 9.69 18 6.73 19 6.20 20 3.01 21 0.32 22 0.52 

y necesito calcular la sum acumulada de las 11 filas anteriores. Cuando hay menos de 11 anteriormente, se supone que los restantes son 0.

  B 0 NaN 1 0.00 2 0.00 3 0.00 4 3.33 5 13.54 6 20.21 7 27.20 8 35.47 9 41.54 10 43.72 11 47.09 12 49.57 13 51.65 14 58.60 15 58.60 16 57.02 17 53.48 18 56.49 19 56.22 20 54.16 21 51.10 22 49.24 

Yo he tratado:

 df['B'] = df.A.cumsum().shift(-11).fillna(0) 

Sin embargo, esto no está logrando lo que quiero, pero está rotando el resultado de una sum acumulada. ¿Cómo puedo conseguir esto?

rolling llamadas con min_periods=1 y window=11 y sum :

 In [142]: df['A'].rolling(min_periods=1, window=11).sum() Out[142]: 0 NaN 1 0.00 2 0.00 3 3.33 4 13.54 5 20.21 6 27.21 7 35.48 8 41.55 9 43.72 10 47.10 11 49.58 12 51.66 13 58.61 14 55.28 15 46.82 16 46.81 17 49.50 18 47.96 19 48.09 20 48.93 21 45.87 22 43.91 Name: A, dtype: float64 

Puede que tengas que hacerlo de la manera más difícil.

 B = [] i =0 m_lim = 11 while i=m_lim and i < len(A) -m_lim: B.append(sum(A[i-m_lim:i])) if i>= len(A) -m_lim: B.append(sum(A[i:])) i=i+1 df['B'] = B