【发布时间】:2020-12-01 19:12:34
【问题描述】:
我有一个 .csv 文件,其中包含一些点(经度、纬度)。我使用以下代码将其转换为 DataFrame 并从 DataFrame 转换为 GeoDataFrame:
CSV 文件:
日期;用户 ID;经度;纬度
2020-01-02;824664;-79.8831613;-2.1811152000000003
2020-03-01;123456;80.8831613;2.1811
2020-01-15;147835;-80.78035200000001;-1.4845725
我用来将 .csv 转换为 gdf 的代码:
df = pd.read_csv('datos25.csv', sep=';', low_memory=False, decimal='.')
gdf = geopandas.GeoDataFrame(
df, geometry=geopandas.points_from_xy(df.Longitud, df.Latitud))
然后,我使用这段代码来定义我的多边形,它是一个国家:
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
ec = world[world.name == 'Ecuador']
现在,我想做的是 gdf 中的每个 POINT,验证它是否在多边形/国家中,如果不是,从 DataFrame 中删除该行
例如,在这种情况下,几何列中的第二个值是:
点 (80.8831613 2.1811)
应该从数据框中删除该值所在的行,因为它不在多边形/国家/地区中
我该怎么做?
【问题讨论】:
标签: python-3.x pandas geopandas