Pandas使用递增值填充fillna函数

4
我有一个数据框,其中一列包含连续但不相邻的数字和缺失值。
我想使用fillna函数将缺失值填充为前一个非缺失行的递增值。
以下是一个简化的表格:
index  my_counter
0      1
1      2
2      NaN
3      3
4      NaN
5      NaN
6      8

我想要将 my_counter 填写如下:

index  my_counter
0      1
1      2
2      2.1
3      3
4      3.1
5      3.2
6      8

我该如何完成这个任务?

嗨@EricM,你能展示一下你的代码吗?你目前尝试了什么? - toti08
我的尝试(成功了)涉及循环和比较,这不是我寻找的以panda为中心的解决方案。下面的Wen的解决方案非常有效。只需要添加一句话,即您需要将“my_column”设置为该行代码,因为意图是用递增的值“替换”NaN。 - Eric M
1个回答

8

如果我理解正确,使用groupbycumcount进行ffill填充。

df.my_counter.ffill()+df.groupby(df.my_counter.notnull().cumsum()).cumcount()/10
Out[92]: 
0    1.0
1    2.0
2    2.1
3    3.0
4    3.1
5    3.2
6    8.0
dtype: float64

有没有一种方法可以用UUID序列填充NAN? - RSM
df = df.apply(lambda x: x.fillna(uuid.uuid4().hex)) - ArulRulzz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接