2024-09-29 21:36:54 发布
网友
我有这样一个专栏
valueCount 0.0 nan 2.0 1.0 1.0 1.0 nan nan nan 4.0
我想根据下一个值(加法)或上一个值(减法)进行填充。 所以结果应该是
我知道这是非常基于条件的,如果我之前的值是0,我可以将+1添加到nan行,否则我应该从0,1,2开始添加,依此类推。在
我可以在python的简单列表中实现这个算法,但是在pandas中有没有简单的方法呢?在
在这种情况下,您还可以使用插值和向下取整。但这并不适用于所有数据集。在
考虑:
import pandas as pd import numpy as np s = pd.Series([0, np.nan, 2, 1, 1, 1, np.nan, np.nan, np.nan, 4])
然后np.floor(s.interpolate())给出
np.floor(s.interpolate())
您可以使用:
a = df['valueCount'].isnull() b = a.cumsum() c = df['valueCount'].bfill() d = c + (b-b.mask(a).bfill().fillna(0).astype(int)).sub(1) df['valueCount'] = df['valueCount'].fillna(d) print (df) valueCount 0 0.0 1 1.0 2 2.0 3 1.0 4 1.0 5 1.0 6 1.0 7 2.0 8 3.0 9 4.0
细节+解释:
在这种情况下,您还可以使用插值和向下取整。但这并不适用于所有数据集。在
考虑:
然后
^{pr2}$np.floor(s.interpolate())
给出您可以使用:
细节+解释:
^{pr2}$相关问题 更多 >
编程相关推荐