python - 字典列表中的 Nan 值

标签 python numpy

如果字典列表中有一个 nan 值,我会尝试打印但失败了。

data = [{'A' : 2, 'B' : 'ssss'}, {'A' : 3, 'B' : 'xxx'}, {'A' :nan, 'B' : 'ssss'}]

代码:

for x in data:
    if (x['A']== 2):
        print('two')
    elif (x['A']== np.nan)
        print('null')
    else:
        print('nothing')

最佳答案

您可以使用dict.values 获取字典的值,在这种情况下我们可以使用此方法map,并检查是否有any返回的生成器中的值与它们自身不相等,这意味着它们是 NaN:

from itertools import chain
data = [{'A' : 2, 'B' : 'ssss'}, {'A' : 3, 'B' : 'xxx'}, 
        {'A' :float('nan'), 'B' : 'ssss'}]

any(i!=i for i in chain.from_iterable(map(dict.values, data)))
# True

或者遵循代码中的逻辑:

for x in data:
    if (x['A']== 2):
        print('two')
    elif (x['A']!= x['A']):
        print('null')
    else:
        print('nothing')

关于python - 字典列表中的 Nan 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60965207/

相关文章:

python-2.7 - 无法让 scipy.io.wavfile.read() 工作

python - 通过重复 2D numpy 数组中的值创建 4D numpy 数组

python - 测试 numpy 数组是否是 numpy 数组列表的成员,并将其从列表中删除

python - 将元组列表整形为 numpy 中的 MxN 维 ndarray

python - 变换后恢复角度

python - 假设函数未完全集成到 SymPy 中

用日期范围填充行的 Pythonic 方法

python - 如何使用 Python 安排不受系统时间变化影响的周期性任务

python - sklearn r2_score 和 python stats lineregress 函数给出了非常不同的 R^2 值。为什么?

c++ - 我怎样才能在cython中调用这个函数?