从 csv 文件中获取特定数据,我希望用户输入模型、速度和制动级别的值,输出是该行的距离

getting specific data from a csv file, I want the user to input the values of model, speed and brake level, and the output is the distance of that row

这是生成我用于下面搜索代码的数据集的代码,这段代码还有一个问题,即在每一行之后都留一行,如果这个问题也能解决的话,那将非常有帮助:

*

**import csv
def generate():
  index =0
  distance =0
  with open('dataset.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
    writer.writerow(["model" ,"speed" ,"breaks" , "distance"])
    for model in range(6):
        for speed in range (290):
          for breaks in range (3):
            if model == 2 :
              modelbreak = 15
            if model == 0 :
              modelbreak = 13
            if model == 4 :
              modelbreak = 11
            if model == 1 :
              modelbreak = 10
            if model == 3 :
              modelbreak = 9
            if model == 5 :
              modelbreak = 7
            distance = (3- breaks) *speed / ((modelbreak+1) )
            index = index +1
            writer.writerow([str(model) , str(speed+10) ,  str(breaks) , str("%.2f" %distance)])
generate()**

这是我为打印 'distance' 列而编写的代码,我是 python 的新手,我似乎找不到允许我提供代码的选项在这种情况下输入(模型、速度和制动级别)以获得(距离):


import csv
import pandas as pd
from _csv import reader
#getting input
x = input('model number:')
z = input('speed:')
q = input('break level:')
x1 = int(x)
z1 = int(z)
q1 = int(q)
target = pd.read_csv('DataSet.csv')
#target = csv.reader(open('DataSet.csv', "r"), delimiter=",")
row = 0
for model in range(6):
    for speed in range(300):
        for breaks in range(3):
            row = row + 1
            if model == x1 and speed == z1 and breaks == q1:
                output = target(distance)
                print(output)

要在数据框中查找距离,您可以过滤而不是循环,这会起作用:

import csv
import pandas as pd
from _csv import reader
#getting input
x = input('model number:')
z = input('speed:')
q = input('break level:')
x1 = int(x)
z1 = int(z)
q1 = int(q)
target = pd.read_csv('dataset.csv')
#target = csv.reader(open('DataSet.csv', "r"), delimiter=",")
distance = target[(target['model']==x1) & (target['speed']==z1) & (target['breaks']==q1)]
print(distance.iloc[0]['distance'])

此外,您在数据集创建代码中使用此名称保存文件:dataset.csv