如何传递NAN值?

How to pass NAN value?

简而言之,有没有什么方法可以忽略 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' object has no attribute '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

谢谢!!

math.isnan()

Return True if x is a NaN (not a number), and False otherwise.

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()

既然您已经在使用 pandas,pd.isna() 可能是更好的选择

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