对 csv 文件进行预测,一次一行
Make a prediction on csv file, one line at a time
我有一个很大的 csv 文件,我需要获取一行数据,一次一个,然后根据模型对其进行评分。我已经尝试了下面的代码但是得到 "X has 120839 features per sample; expecting 30"
的错误。我可以 运行 模型针对整个 dataset
并且它对每一行进行预测。但是我需要一次一行地做,谢谢。
loaded_model = joblib.load('LR_model.sav')
with open(r'fordTestA.csv', "r") as f:
for line in f:
line = f.readlines()[1:] ##minus headers
result = loaded_model.predict(line)
在这种情况下,它似乎没有拆分行,因为每行后面有 \n
。我尝试添加
line = line.rstrip('\n')
这给出了一个错误:" 'list' object has no attribute 'rstrip'"
。提前感谢您的任何反馈。
我不熟悉 joblib
或 predict()
,但是:
import csv
# other code
with open(r'fordTestA.csv', 'r', newline='') as f:
rows = csv.reader(f, delimiter=',')
_ = next(rows) # skip headers
for row in rows:
line = list(map(float, row)) # convert row of str to row of float
results = loaded_model.predict(line)
# or if you need a ',' delimited string
line = ','.join(row)
results = loaded_model.predict(row)
我有一个很大的 csv 文件,我需要获取一行数据,一次一个,然后根据模型对其进行评分。我已经尝试了下面的代码但是得到 "X has 120839 features per sample; expecting 30"
的错误。我可以 运行 模型针对整个 dataset
并且它对每一行进行预测。但是我需要一次一行地做,谢谢。
loaded_model = joblib.load('LR_model.sav')
with open(r'fordTestA.csv', "r") as f:
for line in f:
line = f.readlines()[1:] ##minus headers
result = loaded_model.predict(line)
在这种情况下,它似乎没有拆分行,因为每行后面有 \n
。我尝试添加
line = line.rstrip('\n')
这给出了一个错误:" 'list' object has no attribute 'rstrip'"
。提前感谢您的任何反馈。
我不熟悉 joblib
或 predict()
,但是:
import csv
# other code
with open(r'fordTestA.csv', 'r', newline='') as f:
rows = csv.reader(f, delimiter=',')
_ = next(rows) # skip headers
for row in rows:
line = list(map(float, row)) # convert row of str to row of float
results = loaded_model.predict(line)
# or if you need a ',' delimited string
line = ','.join(row)
results = loaded_model.predict(row)