Как передать значение NAN? - PullRequest
       7

Как передать значение NAN?

0 голосов
/ 30 октября 2019

Проще, есть ли способы игнорировать значения NAN вместо замены другого значения или удаления?

Я импортировал файл Excel в качестве кадра данных, в столбце которого содержатся значения Nan. Этот столбец содержит IP-адреса, поэтому он выглядит следующим образом:

 IP address
10.10.10.10
20.20.20.20
blank(NAN)
30.30.30.30
blank(NAN)

Когда я использую socket.getfqdn(), чтобы узнать имя хоста IP-адреса, но когда он сталкивается со значением NAN, появляется сообщение об ошибке, AttributeError: 'float'У объекта нет атрибута 'strip'.

Я хотел сделать, как показано ниже.

if data.iloc[a, 0] = NAN
    a+=1

Есть ли способы сделать это? Пока я прикрепил свой код, на всякий случай

import pandas as pd
import socket

a = 0

data = pd.read_excel("ipaddress.xlsx")
last_raw_no = len(data) - 1
print('\n excel file reading is done')

while True:

    hostname = socket.getfqdn(data.iloc[a, 0])
    data.loc[a, 'Dst Name'] = hostname
    print(data.iloc[a, 0], '---', data.iloc[a, 1])

    if a == last_raw_no :
        break

    else :
        a+=1

Спасибо !!

1 Ответ

0 голосов
/ 30 октября 2019

math.isnan()

Вернуть True, если x - это NaN (не число), и False в противном случае.

import math
if math.isnan(data.iloc[a, 0]):
    a += 1

Вы также можете проверить тип значения до

from numbers import Real
import math
if isinstance(data.iloc[a, 0], Real) and math.isnan(data.iloc[a, 0]):
    a += 1

pd.isna()

Поскольку вы уже используете панды, pd.isna() может бытьлучший выбор

if pd.isna(data.iloc[a, 0]):
    a += 1
...