为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英546537 2021-04-15 16:15:50
我正在使用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 %}


查看完整回答
反对 回复 2021-04-27
  • 1 回答
  • 0 关注
  • 142 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信