首页 > 解决方案 > 有没有一种pythonic方法来替换字典中的nan值?

问题描述

我想从我的字典中替换 nan 值。例如,有时我的字典看起来像:

{'mean': nan, 'std': nan, 'median': nan, 'sum': 0, 'average_per_day': 0.0, 'freq': 0}

现在我这样做:

for k, v in stats_record.items():
    if math.isnan(v): 
        stats_record[k] = 0

有没有更 Pythonic 的方法来替换字典中的 nan 值?

标签: pythonpython-3.x

解决方案


Dict-comprehension在这里可以派上用场。

import numpy as np

e = {'mean': np.nan, 'std': np.nan, 'median': np.nan, 'sum': 0, 'average_per_day': 0.0, 'freq': 0}

e = {k:v if not np.isnan(v) else 0 for k,v in e.items() }
print(e)

输出:

{'average_per_day': 0.0, 'sum': 0, 'freq': 0, 'median': 0, 'std': 0, 'mean': 0}

推荐阅读