CSV в HTML таблицу можно? - PullRequest
       1

CSV в HTML таблицу можно?

0 голосов
/ 15 марта 2019

У меня есть CSV-файл, полный информации о календаре (calendar-data.csv) Мне нужно взять его и опубликовать на веб-странице (или создать HTML для него)

я хотел бы, чтобы даты проходили по таблице (в столбце «Начало»), а затем имена сотрудников проходили по левой стороне. в каждом поле даты должна быть заполнена соответствующая задача

так будет выглядеть:

             03/15/2019    03/16/2019

employee1      task            task 
                               task

employee2      task
               task

этот код дает мне html, но все его объекты на веб-странице:

import csv
import sys

if len(sys.argv) < 2:
  print "Usage: ./csv-html.py <your CSV file> <your HTML File.html>"
  print
  print
  exit(0)

# Open the CSV file for reading
reader = csv.reader(open(sys.argv[1]))

# Create the HTML file
f_html = open(sys.argv[2],"w");
f_html.write('<title><Work Flow></title>')

for row in reader: # Read a single row from the CSV file
  f_html.write('<tr>');# Create a new row in the table
  for column in row: # For each column..
    f_html.write('<td>' + column + '</td>');
  f_html.write('</tr>')


f_html.write('</table>')

это возможно в Python или я должен искать в другом месте?

спасибо

Edit:

прямо сейчас вывод html выглядит так:

employee1 03/15/2019    tasks
employee1  03/15/2019   tasks
employee2  03/15/2019   tasks
employee2  03/16/2019   tasks

однако я бы хотел, чтобы это выглядело так:

            03/15/2019           03/16/2019            03/17/2019

employee1      tasks               tasks
employee2      task                tasks
employee3                                                tasks

Редактировать 2

используйте pivot для перемещения по дате:

data = data.pivot(index='Employee', columns = 'Start', values='Task').reset_index()

1 Ответ

2 голосов
/ 15 марта 2019

Вы можете прочитать в файле CSV в DataFrame pandas, используя pandas.read_csv , а затем преобразовать в html, используя pandas.to_html

Для CSV-файла "input.csv"

employee_name, 03/15/2019,03/16/2019
employee1, task1,task2 
employee2, task3, task4

Мы можем прочитать CSV-файл как DataFrame

import pandas as pd
df = pd.read_csv("input.csv", index_col="employee_name")

где df

               03/15/2019 03/16/2019
employee_name
employee1           task1     task2
employee2           task3      task4

Затем мы можем преобразовать DataFrame в таблицу HTML с помощью

df.to_html("input.html")

И вывод файла HTML "intput.html" будет

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>03/15/2019</th>
      <th>03/16/2019</th>
    </tr>
    <tr>
      <th>employee_name</th>
      <th></th>
      <th></th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>employee1</th>
      <td>task1</td>
      <td>task2</td>
    </tr>
    <tr>
      <th>employee2</th>
      <td>task3</td>
      <td>task4</td>
    </tr>
  </tbody>
</table>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...