如何在y=nan
的{{1}}中用list
删除记录,如下所示?
dictionary
答案 0 :(得分:0)
您的问题的格式不是很好,但是我会做一些假设并尝试提供帮助。
试试这个:
import numpy as np
nan = np.nan
dict_list = [{'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2018-Q3', 'y': 169.80000000000001, 'text': '169.8', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2018-Q4', 'y': 53.829999999999998, 'text': '53.83', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q1', 'y': 63.420000000000002, 'text': '63.42', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q2', 'y': 42.369999999999997, 'text': '42.37', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q3', 'y': nan, 'text': 'nan', 'showarrow': False}, {'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2019-Q4', 'y': nan, 'text': 'nan', 'showarrow': False}]
filtered_dict_list = [x for x in dict_list if not np.isnan(x['y'])]
这是一个简单的列表理解过滤,用谷歌搜索即可...
祝你好运!
所做的假设:
答案 1 :(得分:0)
@ user1672063:以下方法可以解决您的问题:
# let name your initial record "record"
# record = [{'yanchor': 'bottom', 'xanchor': 'auto', 'x': u'2018-Q3', 'y': 169.80000000000001, 'text': '169.8', 'showarrow': False},..]
#
# Let initialise a new record
newrecord = []
for d in record:
if d['y'] is nan: # provided that you "import numpy.nan as nan" at the beginning
del d['y']
newrecord.append(d)
#“ newrecord”对应于没有d [y] = nan的新记录。
答案 2 :(得分:0)
以下内容有效。
newrecord2 = [] 对于注解2中的d: 如果d ['text']!='nan':#前提是您在开始时“将numpy.nan导入为nan” newrecord2.append(d) #print newrecord