繁体   English   中英

返回 Python 中跨多个独立字段的最佳匹配行

[英]Return best match row across multiple independent fields in Python

我有一个包含 5 个独立字段的表 & 大约。 500,000 行。 所有字段都是数字和浮点数,即非整数。 基于每个字段的示例输入数据,我需要返回所有字段中完全匹配或最适合的行号。

Sample data:
fldA,fldB,fldC,fldD,fldE
2.45,11.27,182.88,45.2,2.59

Table:
fldA,fldB,fldC,fldD,fldE
3.0672,19.31,49.7,113.2,5.0115
3.598,14.4591,242.7,193.2,3.502
1.259,7.14,135.2,93.97,4.097
2.35,11.91,187.63,37.6,1.5249
2.7635,9.49,201.03,79.1,13.8654

Desired output:
return row 4 (2.35,11.91,187.63,37.6,1.5249)

如果我只需要精确匹配,我可以很容易地使用嵌套的“if and”语句,但我正在努力解决这样一个事实,即如果不存在精确匹配,我需要最佳匹配,并且值可以多次出现在同一字段中,所以我认为每个字段的所有回报都需要存储,然后进行比较。 但这不会考虑接近匹配的行,例如 0.01 的差异。

我最初认为我可以计算样本数据和表格之间的百分比差异,但这看起来很复杂,所以认为可能有更简单的方法。

我建议使用这个公式来获得最佳拟合。

让 s_a = sample a, s_b = sample b, ... 和 s_i_a sample a 作为表数据的第 i 行。 然后只需搜索以下项中的最小值:

在此处输入图像描述

你可以通过遍历行来做到这一点,所以每行你将有 1 个值。 将该值与其当前行号一起存储在一个数组中,然后只计算该数组的最小值。 然后返回对应的行号。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM