Не удается обнаружить значения NaN в dataframe (python)

#python #pandas #osmnx

#питон #панды #osmnx

Вопрос:

У меня есть фрейм геоданных, полученный из osmnx:

 cities = ox.geocode_to_gdf(['Município de Lisboa', 'Município de Oeiras', 'Município da Amadora', 'Município de Loures', 'Município de Odivelas'])
whole_polygon = cities.unary_union #unary union of both geometries
G = ox.graph_from_polygon(whole_polygon, network_type='drive', simplify=True)
G_nx = nx.relabel.convert_node_labels_to_integers(G)

nodes, edges = ox.graph_to_gdfs(G_nx, nodes=True, edges =  True)
 

введите описание изображения здесь

Я пытался определить, когда были значения name столбца NaN , но по какой-то причине он не может определить:

 for i in range(len(edges)):

    if edges['name'].iloc[i] == float('nan'):
        print('here')
 

Я попробовал float('NaN') вместо того, что есть в коде. Я проверил, что когда name значение равно NaN переменной, она действительно является плавающей. В столбце имя есть три типа значений: list , str , float , где значения с плавающей запятой используются только тогда, когда значение равно NaN

Комментарии:

1. if edges['name'].isnull(): print('here') Работает ли это

2. Это не работает, нет

3. if edges['name'].iloc[i].isnull(): print('here') забыл iloc

Ответ №1:

 data = {"h":[1,np.nan,2]}
pd.DataFrame(data).isnull()

#output
    h
0   False
1   True
2   False
 

Комментарии:

1. О, я вижу, это работает, да. Я забыл, что данные могут фактически отсутствовать и не быть фактическим значением с плавающей точкой