【发布时间】:2019-09-02 08:43:57
【问题描述】:
我正在尝试从包含项目 ID 和经纬度对列表的熊猫数据框中选择区域内的对象。有没有一种选择方法? 我认为这与这个 SO question 类似,但使用 PANDAS 而不是 SQL
Selecting geographical points within area
这是我保存在 locations.csv
中的表格ID, LAT, LON
001,35.00,-75.00
002,35.01,-80.00
...
999,25.76,-64.00
我可以加载数据框,并选择一个矩形区域:
import pandas as pd
df = pd.read_csv('locations.csv', delimiter=',')
lat_max = 32.323496
lat_min = 25.712767
lon_max = -72.863358
lon_min = -74.729456
small_df = df[df['LAT'] > lat_min][df['LAT'] < lat_max][df['LON'] < lon_max][df['LON'] > lon_min]
如何选择不规则区域内的对象?
如何构建数据框选择命令?
我可以构建一个 lambda 函数,该函数将为该区域内的 LAT 和 LON 生成 True 值,但我不确定如何将它与 pandas 数据框一起使用。
【问题讨论】:
-
您只能使用简单的
df.LAT.between() & df.LON.between()在矩形内进行选择。当然,您可以通过将许多较小的矩形连接在一起来制作任意区域,但这很困难。对任意几何中的点进行更复杂的选择需要geopandas和Shapely之类的库,它们允许进行空间分析。
标签: python pandas geolocation selection geopandas