我正在使用FLASK API渲染/显示网页的预测列表。该列表包含三个元素:ReqNum,预测和预测的概率。我能够连续显示每条记录。但是,对于上述每个元素,我无法将行分为三列。我将数据框转换为列表,然后将其传递到网页。下面是代码:
from flask import Flask, abort, request,render_template, json, render_template_string
from DataPreparationv4 import Data_Preprocess
import numpy as np
import pandas as pd
import pickle
pd.options.mode.chained_assignment = None
filename = 'Test2.pkl'
loaded_model = pickle.load(open(filename, 'rb'))
app = Flask(__name__)
@app.route("/", methods=['GET'])
def Predictions():
Base_Data = pd.read_csv('Test.csv')
DataSet1 = Data_Preprocess(Base_Data)
CaseNumber = DataSet1[1]
DataSet1 = DataSet1[0]
result = loaded_model.predict(DataSet1)
prob = loaded_model.predict_proba(DataSet1)
Predictions = pd.DataFrame({'CTA Code':result,'Prob1':prob[:,0],'Prob2':prob[:,1]})
Predictions['Probability'] = np.where(Predictions['Prob1'] > Predictions['Prob2'],
Predictions['Prob1'], Predictions['Prob2'])
Predictions['CaseNumber'] = CaseNumber['Case Number']
CTA_Map = [['Y',1],['N',0]]
CTA_Map = pd.DataFrame(CTA_Map,columns=['CTA Met','CTA Code'],dtype=float)
Predictions = pd.merge(Predictions,CTA_Map[['CTA Code','CTA Met']],on='CTA Code', how='left')
Predictions = Predictions.drop(['CTA Code','Prob1','Prob2'], axis=1)
Predictions = Predictions[['CaseNumber', 'CTA Met', 'Probability']]
df_list = Predictions.values.tolist()
return render_template('hello13.html', my_list=df_list)
if __name__ == '__main__':
app.run(host='0.0.0.0',port=5000,debug = True)
以下是HTML模板的代码:
<html>
<body>
<table>
<tbody>
{# here we iterate over every item in our list#}
{% for item in my_list %}
<tr><td>{{ item }}</td></tr>
{% endfor %}
</tbody>
</table>
</body>
</html>
在浏览器上查看输出:
我应该怎么做才能为表格行中的每个元素获取三列。
由于我使用数据框进行列表处理会导致列名或列标题丢失。因此,
有没有一种方法可以显示数据框,这样我就不会丢失列名/标题。
或者如何使用当前数据框列出技术将列标题传递给HTML表格列标题。
请指导我如何解决此问题。我仍然是Python的新手,因此我对概念的了解一直在发展。
因此,请您也指导我有关这些概念。
慕田峪9158850
相关分类