Skip to main content
 首页 » 编程设计

python之在 Python 中替换缺失值

2025年05月04日10grandyang

我想用最后一个已知值替换缺失值(无)。这是我的代码。但它不起作用。对更好的算法有什么建议吗?

t = [[1, 3, None, 5, None], [2, None, None, 3, 1], [4, None, 2, 1, None]] 
def treat_missing_values(table): 
    for line in table: 
        for value in line: 
            if value == None: 
                value = line[line.index(value)-1] 
    return table 
 
print treat_missing_values(t) 

请您参考如下方法:

我可能会这样做:

>>> def treat_missing_values(table): 
...     for line in table: 
...         prev = None 
...         for i, value in enumerate(line): 
...             if value is None: 
...                 line[i] = prev 
...             else: 
...                 prev = value 
...     return table 
...  
>>> treat_missing_values([[1, 3, None, 5, None], [2, None, None, 3, 1], [4, None, 2, 1, None]]) 
[[1, 3, 3, 5, 5], [2, 2, 2, 3, 1], [4, 4, 2, 1, 1]] 
>>> treat_missing_values([[None, 3, None, 5, None], [2, None, None, 3, 1], [4, None, 2, 1, None]]) 
[[None, 3, 3, 5, 5], [2, 2, 2, 3, 1], [4, 4, 2, 1, 1]]