我想检查数据框中列的值是否等于0,如果它是0,我想替换该列的前一行的值。
假设我的数据如下,
a=[0,0,1,2,5,6,0,0,8,9,0,11,0,13]
输出应为
a=[0,0,1,2,5,6,6,6,8,9,9,11,11,13]
我尝试了以下命令,
a = a.replace(0, np.NaN).ffill()
但我得到了,
a=[NaN,NaN,1,2,5,6,6,6,8,9,9,11,11,13]
我无法使用drop_duplicates,因为值会在我的数组中再次出现。所以我需要单独检查以前的值并进行计算。
有人可以帮我吗?
由于
答案 0 :(得分:1)
这应该可以解决问题。
previousValue = 0
for i in range(len(a)):
if a[i] == 0:
a[i] = previousValue
else:
previousValue = a[i]
或者更简洁的方式
for i in range(1, len(a)):
if a[i] == 0:
a[i] = a[i-1]