我目前正在收集来自quandl的数据并保存为列表的列表。该列表看起来是这样的(价格数据):最有效的方法来遍历列表
['2', 1L, datetime.date(1998, 1, 2), datetime.datetime(2016, 9, 26, 1, 35, 3, 830563), datetime.datetime(2016, 9, 26, 1, 35, 3, 830563), '82.1900', '83.6200', '81.7500', '83.5000', '28.5183', 1286500.0]
这是典型的约5000名单1,每一次在一段时间Quandl会吐回一些NaN
值不喜欢被保存到数据库中。
['2', 1L, datetime.date(1998, 1, 2), datetime.datetime(2016, 9, 26, 1, 35, 3, 830563), datetime.datetime(2016, 9, 26, 1, 35, 3, 830563), 'nan', 'nan', 'nan', 'nan', 'nan', 0]
什么是迭代列表列表以将'nan'值更改为零的最有效方式?
我知道我可以做这样的事情,但它似乎效率很低。此操作将需要在11个不同的值执行* 5000个不同的日期* 500家公司:
def screen_data(data):
new_data = []
for d in data:
new_list = []
for x in d:
new_value = x
if math.isNan(x):
new_value = 0
new_list.append(new_value)
new_data.append(new_list)
return new_data
我有兴趣,可以减少时间的任何解决方案。我知道DataFrames可能工作,但不知道它将如何解决NaN问题。
或者如果有办法将NaN值与浮点数一起包含在SQLServer5.6数据库中,那么更改数据库也是一个可行的选项。
这可能在codereview.stackexchange.com上更好,但是您所描述的内容听起来像您必须检查每个列表中的每个值。 – AChampion