我正在使用FLASK API渲染/显示网页的预测列表。该列表包含三个元素:ReqNum,预测和预测的概率。我能够连续显示每条记录。但是,对于上述每个元素,我无法将行分为三列。我将数据框转换为列表,然后将其传递到网页。下面是代码:from flask import Flask, abort, request,render_template, json, render_template_stringfrom DataPreparationv4 import Data_Preprocessimport numpy as npimport pandas as pdimport picklepd.options.mode.chained_assignment = Nonefilename = '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的新手,因此我对概念的了解一直在发展。因此,请您也指导我有关这些概念。
1 回答
慕田峪9158850
TA贡献1794条经验 获得超7个赞
如果您可以控制每一行正好包含3个成员,那么一个简单的选择就是直接在for循环中解压缩这3个项目:
{% for num, prediction, prob in my_list %}
<tr>
<td>{{ num }}</td>
<td>{{ prediction }}</td>
<td>{{ prob }}</td>
</tr>
{% endfor %}
添加回答
举报
0/150
提交
取消