2014-05-04 5 views
1

Есть ли какая-то ошибка, которую я делаю, или это ошибка в пандах или, возможно, Quandl?Python Pandas: Необязательные значения NaN

Is there some error that I am doing or is it a fault within pandas or perhaps Quandl?

+0

У меня нет NaN, когда я воспроизвел его. Возможно, попробуйте: quandl_gold_fridays ['Round'] = (quandl_gold_fridays ['Close']/23) .astype (int) ', который является векторизованным эквивалентом того, что вы пытаетесь сделать. –

+1

лучше всего скопировать/вставить код в свой вопрос. эта связь может сгнить в один прекрасный день. –

ответ

0

Я уверен, что проблема заключается в следующей строке:

quandl_gold_fridays['Round'] = quandl_gold['Close'].apply(lambda x: int(float(x)/23)) 

Обратите внимание, что вы использовали quandl_gold на правой стороне вместо quandl_gold_fridays. Дата, соответствующая вашему NaN, - 2014-04-18, которая была в Страстную пятницу (т. Е. Рынки закрыты). Не было бы соответствующего значения в quandl_gold в эту дату для использования лямбда, поэтому он будет передан NaN.

Чтобы проиллюстрировать это, попробуйте добавить ячейку со следующим кодом:

import pandas as pd 

x = pd.merge(left=quandl_gold.loc[:, ['Close']], 
      right=quandl_gold_fridays.loc[:, ['Close','Round']], 
      left_index=True, 
      right_index=True, 
      how='right') 
x.tail(10) 

Вы заметите NaN в столбце «Close_x».

Смежные вопросы