【发布时间】:2020-08-21 00:00:19
【问题描述】:
我有两个数据框,其中包含经纬度值和一些附加信息 我想合并值范围内的两个数据框
df1
lat1 lon1 lat2 lon2 a1 a2 a2
1.0 1.0 4.0 7.0 a d p
2.0 2.0 5.0 8.0 b e q
3.0 3.0 6.0 9.0 c f r
这是 3000 万行的大小
df2
lat lon x
1.0 1.0 m
1.0 2.0 n
2.0 3.0 o
这是 2000 万行的大小
现在对于 df1 中的每一行,我想与 df2 合并,其中 df2 中的所有 lat 在 lat1 和 lat2 之间 lon1 和 lon2 中的 lon
lat1<=lat<=lat2
lon1<=lon<=lon2
我试过了
Best way to join / merge by range in pandas
how to perform an inner or outer join of DataFrames with Pandas on non-simplistic criterion
但我仍然内存不足。
执行此操作的最佳方法是什么?
【问题讨论】:
-
尝试 Geopandas 空间连接。 geopandas.org/mergingdata.html?highlight=merge#spatial-joins
-
@BimalGangawal 看看这个链接 - Fastest way to merge pandas dataframe on ranges
-
@tidakdiinginkan 感谢您的出色领导,但由于github.com/pandas-dev/pandas/issues/20369,它似乎无法正常工作