【问题标题】:Getting rid of 'nan' from list value of dictionary , python从字典的列表值中摆脱'nan',python
【发布时间】:2023-03-20 20:20:01
【问题描述】:

我有这本词典:

dict_new = 
{'extracted_layout': [nan, nan, nan, nan, nan, nan, nan, nan, nan, 'shyamanna layout', nan, nan, nan, nan, 'm t s layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'green glen layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'h s r layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'vikas layout', 'annaiah reddy layout', nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, 'andhra muniyappa layout', nan, nan, nan, nan, nan, 'lake city layout', nan, 'h s r layout'}

它有一个键,extracted_layout,它的值在一个塞满了 nans 的列表中。我该如何摆脱它们?

【问题讨论】:

  • 请解释投反对票的原因,我的问题是重复的吗?还是不具体?
  • 这没有任何意义??只是因为问题太小而投反对票,真的很伤心..
  • 您的评论只是一个假设(“因为问题太小”)并且可能不正确。反对票不是来自我,但你的问题没有显示任何研究工作。它没有说你到目前为止已经尝试过什么。因此,您的问题基本上是,“请为我做这件事”。这不是很多人喜欢的。
  • 投反对票的原因可能是缺乏质疑的理由,你想这样做是为了什么?您需要/预期的输出是什么?你试过什么?为什么这不起作用?

标签: python list python-2.7 dictionary


【解决方案1】:

如果nan是float nan,使用math.isnan过滤掉:

>>> import math
>>> nan = float('nan')
>>> nan
nan
>>> math.isnan(nan)
True
>>> math.isnan(1)
False

import math

dict_new['extracted_layout'] = [
    x
    for x in dict_new['extracted_layout']
    if not (isinstance(x, float) and math.isnan(x))
]

【讨论】:

    【解决方案2】:
    list_dict = [{"year": 1916, "age": 10},
            {"year": 1826, "age": 'NaN'},
            {"year": 'NaN', "age": 7}]
    for my_dict in list_dict:
        for k in my_dict:
            if isnan(float(my_dict[k])):
                my_dict[k] = 0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 2020-07-12
      • 2018-05-01
      • 2017-01-19
      • 2018-06-17
      • 2020-09-23
      • 1970-01-01
      相关资源
      最近更新 更多