У меня есть фрейм данных Geo Pandas с геометрией Point. Фрейм данных был создан из фрейма данных Pandas, который содержал отдельные столбцы для ориентации на восток и север, используя следующий код:
import numpy as np
import pandas as pd
import geopandas as gpd
from shapely.geometry import Point
df = pd.DataFrame({'id':[1,2,3,4,5],
'easting':[545200.0,np.nan,360800.0,270500.0,np.nan],
'northing':[130600.0,np.nan,510100.0,80350.0,np.nan]})
geodf = gpd.GeoDataFrame(df.drop(['easting','northing'],axis = 1),
crs = {'init': 'eps:277000'},
geometry = [Point(xy) for xy in zip(df['easting'],
df['northing'])])
phjCPHEastNrthGDF = gpd.GeoDataFrame(phjCPHEastNrthDF.drop(['easting','northing'],
axis = 1),
crs = {'init': 'epsg:27700'},
geometry = [Point(xy) for xy in zip(phjCPHEastNrthDF['easting'],
phjCPHEastNrthDF['northing'])])
Фрейм данных Pandas и фрейм данных Geo Pandas печатаются следующим образом:
Исходный фрейм данных:
id easting northing
0 1 545200.0 130600.0
1 2 NaN NaN
2 3 360800.0 510100.0
3 4 270500.0 80350.0
4 5 NaN NaN
Geo pandas фрейм данных:
id geometry
0 1 POINT (545200 130600)
1 2 POINT (nan nan)
2 3 POINT (360800 510100)
3 4 POINT (270500 80350)
4 5 POINT (nan nan)
На самом деле фрейм данных содержит более 250 тыс. Точек. Я хотел бы иметь возможность идентифицировать все точки, которые были созданы из значений восточного и северного положения np.nan (но исходные столбцы «восток» и «север» больше не доступны).
Я попытался использовать .isna()
и .is_empty
, но безуспешно:
print(geodf.loc[(geodf['geometry'].isna()),:])
print(geodf.loc[(geodf['geometry'].is_empty),:])
... оба печатают пустые фреймы данных.
Есть ли способ определить требуемые геометрические точки?