vmamontov

create HTML from DataFrame

Sep 14th, 2021 (edited)
941
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. # задача - преобразовать DataFrame в обычный HTML
  2. # решение - использование шаблонизатора Jinja2
  3. # 1. на первом шаге описывается шаблон HTML-страницы
  4. # 2. на втором шаге описывается шаблон, в который будут вставляться данные из  DataFrame
  5. # 3. на третьем шаге через цикл генерируется HTML-текст, подставляются данные
  6. # 4. сохранение итогового файла на диск
  7.  
  8. import pandas as pd
  9. from jinja2 import Template
  10.  
  11. data = pd.read_csv('https://vk.com/doc207845555_611573740', sep='\t')
  12. # data.head(5)
  13.  
  14. # шаблон для HTML-таблицы
  15. html = '''<html>
  16.            <head>
  17.                <title>Какие-то тестовые данные</title>
  18.                <meta charset="utf-8"/>
  19.            </head>
  20.            <body>
  21.                <table border="1">
  22.                    <tr>
  23.                        <th>id</th>
  24.                        <th>date</th>
  25.                        <th>user_id</th>
  26.                        <th>duration</th>
  27.                        <th>medium</th>
  28.                        <th>source</th>
  29.                        <th>cost</th>
  30.                        <th>order_id</th>
  31.                        <th>amount_paid</th>
  32.                    </tr>'''
  33.  
  34. html_content = '''<tr>
  35.                        <td>{{ data.id }}</td>
  36.                        <td>{{ data.date }}</td>
  37.                        <td>{{ data.user_id }}</td>
  38.                        <td>{{ data.duration }}</td>
  39.                        <td>{{ data.medium }}</td>
  40.                        <td>{{ data.source }}</td>
  41.                        <td>{{ data.cost }}</td>
  42.                        <td>{{ data.order_id }}</td>
  43.                        <td>{{ data.amount_paid }}</td>
  44.                    </tr>'''
  45.  
  46. html_footer = '</table></body></html>'
  47.  
  48.  
  49. # запись DataFrame в HTML
  50. for i, item in data.iterrows():
  51.     html += Template(html_content).render(data=item)
  52.  
  53. html += html_footer
  54.  
  55. # сохранение HTML
  56. with open('test.html', 'a') as file:
  57.     file.write(html)
RAW Paste Data