【发布时间】:2015-01-17 18:59:42
【问题描述】:
我有一个包含多个列的文本文件,如下所示:
1000 1 2 3
1000 1.5 2.5 3.1
2000 4 5 6
3000 7 8 9
我想创建一个 python 脚本,在其中输入一系列 3 个数字,在前 3 列中搜索最接近的数字并返回最后一列的相应值。
例如,如果我输入1200 1 2,它应该返回3。
更新:是否可以在第二行和第三行具有相同值的数据之间进行线性插值? 例如我的数据是: 1000 100 2 0.1 1200 100 2 0.2 1000 80 3 0.4 我的输入是 '1100 100 2',它应该返回 0.15。
【问题讨论】:
-
嘿,如果您添加一些您尝试过的代码会更好
-
目前我不知道如何开始。
-
您可以通过
df = pd.read_fwf(path_to_txt_file)将其读入 pandas df 但是您尚未定义最接近的标准,例如您只能获得 1 或 2 个完全匹配但其余值不是close 或者你可以让所有 3 个都接近但没有完全匹配,这里是否应用了权重? -
您确实需要更好地尝试一下,并在遇到任何问题时返回,目前这太宽泛了,就像一个不喜欢的“给我代码”类型的问题所以。我的建议是将其加载到 pandas df 中,然后查看
np.searchsorted或其他搜索功能,并在遇到困难时返回 -
让我解释得更好。应该为每一列寻找最接近的值。所以我如果输入'1200 1 2',它应该取第一个输入的数字(1200)并在这种情况下在第一列中寻找最接近的数字1000。然后它应该取第二个数字(1)并寻找最接近的数字第二列,但只有满足上限条件的行。第三个输入的数字也一样,所以最后它应该返回满足这些条件的最后一列的对应值。
标签: python pandas criteria multiple-columns