我目前正在收集來自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