我有两个不同的熊猫数据集(python3)具有相同的结构(列:country、region、week、COL1-COL180)。D1小到300行,D2超过20万行。
对于D1(小数据框)中的所有记录/行,我想遍历D2数据框中的行,匹配country+region,并提取与D1中的记录最相似的记录。
相似度是通过计算col1-col180列中的值之间的距离来确定的。基本上距离=[sum(D1.COLi-D2.COLi)^2],其中i的范围是0到180。
应选择此距离最小的记录,并将其保存在单独的数据帧中
Tags:
我要建议的是一个相当天真的暴力方法,但应该是一个体面的开始。有很多方法可以优化它:
基本上,您可以从较大的数据帧中为较小帧中的每一行获取匹配的行,然后计算每一行的距离。你不需要保持距离,所以你只需要保持最接近的距离
我在这里所做的将是相当缓慢的,但你可以加快它与其他优化(例如,D1中有多少行具有相同的国家和地区?)
相关问题 更多 >
编程相关推荐