如何在pandas中的列中添加值?

如何在pandas中的列中添加值?,pandas,dataframe,python-3.7,Pandas,Dataframe,Python 3.7,我有一个数据帧 import pandas as pd data = {'a': [1,2,3,None,4,None,2,4,5,None]} df = pd.DataFrame(data) print(df) a 0 1.0 1 2.0 2 3.0 3 NaN 4 4.0 5 NaN 6 2.0 7 4.0 8 5.0 9 NaN 我想增加值,直到NaN出现,一旦它得到NaN,它就会停止并从头开始 a b 0 1.0

我有一个数据帧

import pandas as pd
data = {'a': [1,2,3,None,4,None,2,4,5,None]}
df = pd.DataFrame(data)
print(df)

     a
 0  1.0
 1  2.0
 2  3.0
 3  NaN
 4  4.0
 5  NaN
 6  2.0
 7  4.0
 8  5.0
 9  NaN
我想增加值,直到NaN出现,一旦它得到NaN,它就会停止并从头开始

     a    b
0  1.0    6
1  2.0    6
2  3.0    6
3  NaN  NaN
4  4.0    4
5  NaN  NaN
6  2.0   11
7  4.0   11
8  5.0   11
9  NaN  NaN
我怎样才能做到这一点


提前感谢

使用
cumsum
创建
groupby
键,然后使用
mask

df.a.groupby(df.a.isnull().cumsum()).transform('sum').mask(df.a.isnull())
0     6.0
1     6.0
2     6.0
3     NaN
4     4.0
5     NaN
6    11.0
7    11.0
8    11.0
9     NaN
Name: a, dtype: float64

使用
cumsum
创建
groupby
键,然后使用
mask

df.a.groupby(df.a.isnull().cumsum()).transform('sum').mask(df.a.isnull())
0     6.0
1     6.0
2     6.0
3     NaN
4     4.0
5     NaN
6    11.0
7    11.0
8    11.0
9     NaN
Name: a, dtype: float64

很好,很好。