如何在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
很好,很好。