如何在熊猫列中增加价值?

时间:2020-10-08 17:00:06

标签: 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    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

我该如何实现?

预先感谢

1 个答案:

答案 0 :(得分:3)

使用cumsum创建groupby键,然后使用transform 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