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