【发布时间】:2019-08-26 08:54:05
【问题描述】:
我在 pandas df 中有一个大小为 (34000 * 2) 的纬度和经度数据
df =
Index Latitude Longitude
0 66.36031097267725 23.714807357485936
1 66.36030099322495 23.71479548193769
2
.
.
.
.
34000 66.27918383581169 23.568631229948359
重要提示:上面的经纬度路线已经被覆盖了两次,这意味着如果我只覆盖一次路线,那么我的纬度和经度数据的大小将是 (34000/2, 2)例如。
问题
我只想要特定选定区域的经纬度数据。所以我使用我的 df 中的起点和终点 Lat 和 Long 点进行过滤。这样做时,该区域的另一部分也被选中。 (See picture below after filtering)
要求
如何删除额外的区域?我相信会有一些简单的方法来解决这个问题。 注意:过滤后的经纬度数据也覆盖了两次。
过滤
def apply_geofence_on_data(interpolated_data, min_latitude=66.27832887852133, max_latitude=66.37098470528755, min_longitude=23.568626549485927,
max_longitude=23.71481685393929):
interpolated_data = interpolated_data[interpolated_data['Latitude'] > min_latitude]
interpolated_data = interpolated_data[interpolated_data['Latitude'] < max_latitude]
interpolated_data = interpolated_data[interpolated_data['Longitude'] < max_longitude]
interpolated_data = interpolated_data[interpolated_data['Longitude'] > min_longitude]
return interpolated_data
【问题讨论】:
-
不确定您是否在查找要删除的记录或如何删除记录时遇到问题。如果您只需要从数据框中删除行,它不会只使用具有适当索引的 pandas.DataFrame.drop() 方法。如果您正在寻找筛选数据的方法,您是否可以找到开始/结束点的坐标以保留并仅保留其间的记录?
-
更严格的方法是将数据制作成地理数据框,并使用您拥有的数据与您拥有的任何感兴趣区域的交集(必须将其表示为多边形或其他东西)。 geopandas.org/geometric_manipulations.html
-
我的数据量很大,所以很难保存索引和删除不需要的区域,,,@yosukesabai
-
需要看看你是如何过滤的。
-
@Frenchy 请找到编辑后的问题
标签: python-3.x pandas machine-learning scipy geopy