小编dP8*_*884的帖子

与迭代两个大型Pandas数据框相比,提高了效率

我有两个具有基于位置值的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)

python performance loops dataframe pandas

4
推荐指数
1
解决办法
218
查看次数

标签 统计

dataframe ×1

loops ×1

pandas ×1

performance ×1

python ×1