В настоящее время я собираю данные из 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]
Это, как правило, 1 около 5000 списков, и каждый раз в некоторое время 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