Определите, присутствует ли npy.nan в pandas.Series - PullRequest
0 голосов
/ 10 декабря 2018

Попытка определить, присутствует ли npy.nan в pandas.Series

1.Код, который я создал для репликации и проверки того, что я пытаюсь выполнить:

ser = pnd.Series(['1',None, 2, npy.nan], index=['2001','2002','2003','2004'])  
serTest = ser.isin([npy.nan]) == True
  • serTest назначено

    2001 False
    2002 False
    2003 False
    2004 True

2.Код, показывающий противоречивое поведение:

(данные поступают из файла CSV, Всемирный банк )

Я пытаюсь прочитать любойсоответствующие значения из CSV-файла, которые имеют тип, npy.nan.Чтобы проверить соответствующие ячейки для их типа и устранить проблему, с которой я столкнулся, я использую следующий код, где данные представляют собой тип серии panda, содержащий индекс (год) и число с плавающей запятой (валовой внутренний продукт):

for flt in data:
    print('is nan {}'.format(npy.isnan(flt)))
  • фрагмент данных

    2006 3.89552e + 11
    2007 4.25065e + 11
    ...
    2014 4.63903e +11
    2015 NaN

Для рассматриваемой ячейки (ВВП 2015 года) возвращается код, который я ожидаю:

is nan True

Однако,когда я пытаюсь вернуть логическую серию, например, реплицированный код, пункт 1 выше, я получаю:

2006 False  
2007 False  
... 
2014 False 
2015 False

, где 2015 должно быть True, основываясь на значении NaN для фрагмента данных 2015 года.

Заключительные комментарии, после получения противоречивых результатов, даже если они автоматически назначаются при чтении файла в pandas.DataFrame, в качестве альтернативной попытки изолировать проблему я назначил npy.nan для рассматриваемой ячейки через DataFrame.Только что упомянутые результаты совпадают.

Пожалуйста, помогите.: -)

...