烧瓶中的列表到表格格式问题

时间:2018-07-08 18:38:36

标签: python html flask

我正在使用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>

在浏览器中查看输出:

Sample output on browser

  • 如何为表格行中的每个元素获取三列。

由于我使用数据框进行列表处理会导致列名或列标题丢失。因此,

  • 有没有一种显示数据框的方法,这样我就不会丢失该列 名称/标题。
  • 或者如何使用我的列标题传递给HTML表的列标题 要列出的数据帧的当前技术。

请指导我如何解决此问题。我仍然是Python的新手,因此我对概念的了解一直在发展。

因此,请您也指导我有关概念。

1 个答案:

答案 0 :(得分:0)

如果您可以控制每行恰好包含3个成员,那么一个简单的选择就是直接在for循环中解压缩这3个项目:

[EnvironmentQueryEd] EnableEnvironmentQueryEd=True`
相关问题