有没有一种pythonic的方法来替换字典中的nan值?

时间:2019-01-31 06:16:05

标签: python python-3.x

我想替换字典中的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

还有更多的Python方式可以替换字典中的nan值吗?

1 个答案:

答案 0 :(得分:2)

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}