当前位置: 首页 > 知识库问答 >
问题:

如何在csv文件python中获得最接近的匹配

乌修筠
2023-03-14

如果你想在我的大城市里找到最近的对手。python中的csv文件。我的头发(缩短了)。csv文件是:

0,4,5,0,132,24055,0,64,6,23215,39635,22,21451751,3233419908,8,0,4126,368,15087,0
0,4,5,16,52,22607,0,64,6,24727,22,39635,3233439332,21453192,8,0,26,501,28207,0
1,4,5,0,40,1727,0,128,6,29216,62281,22,123196295,3338477204,5,0,26,513,30738,0
0,4,5,0,116,24108,0,64,6,23178,39635,22,21452647,3233437508,8,0,4126,644,61163,0
0,4,5,0,724,32046,0,64,6,14632,38655,22,1452688218,1828171762,8,0,4126,343,31853,0
0,4,5,0,76,26502,0,128,6,4405,50266,22,1776918274,3172205875,5,0,4126,512,9381,0
1,4,5,0,40,7662,0,64,6,39665,22,62202,3176642698,3972914889,5,0,26,501,63331,0
1,4,5,0,52,939,0,128,6,29992,62206,22,1466629610,0,8,0,44,64240,43460,0
0,4,5,16,76,10076,0,64,6,37199,22,50268,4016221794,718292575,5,0,4126,501,310,0
0,4,5,0,40,26722,0,128,6,4221,50270,22,38340335,3852724687,5,0,26,510,36549,0
0,4,5,0,76,26631,0,128,6,4276,50266,22,1776920362,3172222235,5,0,4126,511,61692,0
0,4,5,16,148,38558,0,64,6,8680,22,37221,2019795091,3598991383,8,0,4126,501,9098,0
0,4,5,0,52,24058,0,64,6,23292,39635,22,21452135,3233420036,8,0,26,368,38558,0
0,4,5,16,76,10249,0,64,6,37026,22,50266,3172221011,1776919966,5,0,4126,501,31557,0
0,4,5,16,212,38490,0,64,6,8684,22,37221,2019776067,3598991175,8,0,4126,501,56063,0
0,4,5,0,60,0,0,64,6,47342,22,44751,2722242689,3606442876,10,0,4426,65160,29042,0
0,4,5,16,76,10234,0,64,6,37041,22,50266,3172220319,1776919498,5,0,4126,501,49854,0
1,4,5,0,1016,1737,0,128,6,28230,62273,22,3387237183,3449598142,5,0,4126,513,49536,0
1,4,5,0,40,20630,0,64,6,26697,22,62288,4040909519,95375909,5,0,26,501,36104,0
0,4,5,16,180,22591,0,64,6,24615,22,39635,3233437764,21452775,8,0,4126,501,28548,0
0,4,5,0,52,31654,0,64,6,15696,47873,22,3476257438,205382502,8,0,26,368,59804,0
1,4,5,0,320,20922,0,64,6,26125,22,62195,2187234888,2519273239,5,0,4126,501,52263,0
0,4,5,0,1132,22526,0,64,6,23744,22,39635,3233417124,21450447,8,0,4126,509,12391,0
1,4,5,0,52,0,0,64,6,47315,22,62282,3209938138,2722777338,8,0,4426,64240,36683,0
0,4,5,0,52,3091,0,64,6,44259,22,38655,1828172842,1452688914,8,0,26,504,7425,0
0,4,5,16,132,10184,0,64,6,37035,22,50266,3172212167,1776918310,5,0,4126,501,44260,0
0,4,5,16,256,10167,0,64,6,36928,22,50266,3172210503,1776918310,5,0,4126,501,19165,0
1,4,5,0,120,2043,0,128,6,28820,62294,22,644393448,2960970388,5,0,4126,512,36939,0
0,4,5,16,196,38575,0,64,6,8615,22,37221,2019796627,3598991543,8,0,4126,501,29587,0
0,4,5,16,148,22599,0,64,6,24639,22,39635,3233438532,21452967,8,0,4126,501,41316,0
1,4,5,0,88,1733,0,128,6,29162,62267,22,872073945,3114048214,5,0,4126,508,23918,0

我做了一个程序,但是它还没有完成,我不知道如何完成它。我必须使用另一个程序吗?:

with open("<dir>", "r") as file:
    file = file.readlines()
len_ = len(file)

string = "4,5,0,52,32345,0,64,6,15005,37221,22,3598991799,2019801315,8,0,26,691,17176,0" #The string, that I want to find the neares data in the .csv data.

list_ = []

for i in range(1, len_):
    item = str(file[i])
    item2 = item[2:]
    list_.append(item2)
    
for item in list_:

算法:在行上从左到右查找,找到与搜索数据顺序匹配最多的行。

共有1个答案

卫振
2023-03-14

似乎您正在处理一个机器学习问题,使用一个数据集和一个查找最近邻居的点。我假设您想要数据集中到给定点的欧几里德距离(19维)最短的点。

我会使用pandas和scikit学习包,并使用近邻算法。上传软件包

from sklearn.neighbors import NearestNeighbors
import numpy as np
import pandas as pd

上传文件。csv作为数据帧(具有通用列名)

df = pd.read_csv('file.csv', index_col=False, names=np.arange(20))

由于您希望将第一列值作为结果,我将其移动到名为“first_column”的熊猫系列,并将其从“df”数据框中删除

first_column = df[0]
df.drop(columns=[0], inplace=True)

你所谓的"字符串",我称之为"y",并将其设置为Numpy数组:

 y = np.array([[4,5,0,52,32345,0,64,6,15005,37221,22,3598991799,2019801315,8,0,26,691,17176,0]])

现在让我们拟合最近邻模型

nnb = NearestNeighbors(n_neighbors=1).fit(df)

现在计算数据集中最接近给定点y的点:

distances, indices = nnb.kneighbors(y, n_neighbors=1)
print(indices)
[[13]]

所以,最近的点在数据框中有索引13。我们来打印first_column的第十三个位置

print(first_column.loc[13])
0
 类似资料:
  • 问题内容: 我有一系列正/负整数 现在,我想针对此数组测试另一个int,并返回最接近该int的数字。 例如,如果我使用数字,我将从数字中取回第4项,那么做这种事情的最佳方法是什么? 那不行 有什么好的方法建议吗? 问题答案: 始终使用要考虑的第一个元素初始化最小/最大函数。使用诸如或这样的东西是获得答案的幼稚方式;如果以后再更改数据类型(糟糕,而且有很大不同!),或者将来您想为 任何 数据类型编写

  • 问题内容: 例如,我有2个时间表:T1 和T2 我需要从T1获取最接近T2的时间。这些表之间没有关系。应该是这样的: 但是我不明白。有什么建议? 问题答案: 我相信这是您要查找的查询: 确保时间列具有相同的日期部分,否则t2.time-t1.time部分将无法正常工作。 编辑 :感谢您的接受,但本的下面的答案是更好。它使用Oracle分析功能,性能会更好。

  • 使用我们可以轻松地更改链接的缩放级别。甚至有一段代码为目标类型执行此操作。为了方便,请在下面找到它。 代码只处理PDF文件中的目标类型之一。我对改变其他类型的目的地的缩放感兴趣(如果有人想知道的话,它们列在32000-1中)。具体地说,我希望将每个目的地更改为类型,并指定自己的坐标。我想左坐标与页面高度相同的页面跳转。要做到这一点,我显然需要页码。我怎么弄? 到目前为止我做了什么?指令给su一个数

  • 我正在建立汽车生日愿望项目。到目前为止,我已经设法循环了一个月 csv文件包含以下信息

  • 问题内容: 如何为给定的目标值搜索和查找数组中最接近的值? 假设我有这个示例数组: 例如,当我用目标值0搜索时,该函数应返回0;否则,该函数将返回0。当我搜索3时,它将返回5;当我搜索14时,它将返回12。 问题答案: 将您要搜索的数字作为第一个参数,将数字数组作为第二个参数:

  • 问题内容: 我在jmeter.properties文件中做了以下更改: 但是仍然找不到我的.csv文件在哪里。 谁能帮帮我吗。 问题答案: 除了在jmeter.properties中完成的配置外: 1)GUI: 汇总报告结果配置 2)CLI: 在test.csv您将获得CSV格式的结果。

  • 我使用jitsi meet sdk进行视频会议应用。但我无法获得他们最近的参与者或历史记录。在最初的jitsi meet android应用程序中有最近的选择。所以,我不知道如何得到它。我是一名学生,这个应用程序是我的项目。所以,请帮助我了解那里的历史,并给出一些想法来改善我的应用程序功能,这对我很有用。 谢谢。