我有两个具有基于位置值的HUGE Pandas数据框,我需要使用df2中距df1中每个点小于1000m的记录数来更新df1 ['count']。
这是我导入到Pandas中的数据的示例
df1 = lat long valA count
0 123.456 986.54 1 0
1 223.456 886.54 2 0
2 323.456 786.54 3 0
3 423.456 686.54 2 0
4 523.456 586.54 1 0
df2 = lat long valB
0 123.456 986.54 1
1 223.456 886.54 2
2 323.456 786.54 3
3 423.456 686.54 2
4 523.456 586.54 1
Run Code Online (Sandbox Code Playgroud)
实际上,df1具有约1000万行,而df2具有约100万行
我使用Pandas DF.itertuples()方法创建了一个可工作的嵌套FOR循环,该方法对于较小的测试数据集(df1 = 1k行和df2 = 100行需要大约一个小时才能完成)工作正常,但是完整的数据集是指数级的较大,根据我的计算将需要数年才能完成。这是我的工作代码...
import pandas as pd
import geopy.distance as gpd
file1 = 'C:\\path\\file1.csv'
file2 = …Run Code Online (Sandbox Code Playgroud)