Python Да sh как создать таблицу из двух столбцов? - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь создать таблицу для веб-приложения Plotly Da sh.

Из данных в фрейме данных я хочу создать следующую таблицу (таблица с двумя столбцами, имя столбца с одной стороны, и значения на другом):

Имя столбца | Значение

Я использую логи c ниже, но это просто дает мне таблицу с одним столбцом и складывает значения и имена столбцов в одном столбце.

  return html.Table(
        # Header
        [html.Tr([html.Tr(col) for col in dataframe.columns])] +

        # Body
        [html.Td([
            html.Tr(dataframe.iloc[i][col]) for col in dataframe.columns
        ]) for i in range(min(len(dataframe), max_rows))]
    )

Для тех, кто знаком с html, это то, что я пытаюсь сделать:

<table>
<tr>
<td>Column Name:</td>
<td>Values:</td>
</tr>
</table>

@ brokenfoot Я попытался использовать ваш пример, но он говорит мне, что запятая синтаксическая ошибка:

    return html.Table(
        [
            html.Tr( [html.Td(col) for col in dataframe.columns
           ,html.Td(dataframe.iloc[i][col]) for col in dataframe.columns])
            for i in range(min(len(dataframe), max_rows))
        ]
                     )

Ответы [ 2 ]

1 голос
/ 14 января 2020

Вот что у меня получилось:

 fig = go.Figure(data=[go.Table(
    # header=dict(values=['A Scores', 'B Scores'],
    #             line_color='darkslategray',
    #             fill_color='lightskyblue',
    #             align='left'),
    cells=dict(values=[dataframe.columns.values.tolist(), # 1st column
                       df_cohort_3.iloc[0:1].values.tolist()[0]  # 2nd column
                      ],
               line_color='darkslategray',
               fill_color='lightcyan',
               align='left'))
                        ])
    #fig.update_layout(width=500, height=600)
    return fig.show()
1 голос
/ 13 января 2020

Вы можете передавать данные заголовка с помощью:

html.Th()

и фактические данные таблицы с помощью:

html.Td()

Пример использования:

 ... 
            html.Table(className='table',
                children = 
                [
                    html.Tr( [html.Th('Attribute'), html.Th("Value")] )
                ] +
                [
                    html.Tr( [html.Td('OS'),         html.Td('{}'.format(get_platform()))] ),
                    html.Tr( [html.Td('#CPUs'),      html.Td('{}'.format(ps.cpu_count()))] ),
                    html.Tr( [html.Td('CPU Clock'),  html.Td('{} MHz'.format(int(ps.cpu_freq().current)))] ),
                    html.Tr( [html.Td('RAM'),       html.Td('{} GB'.format(ps.virtual_memory().total >> 30))] ),
                    html.Tr( [html.Td('#processes'), html.Td('{}'.format(len(ps.pids())))] ),
                ]
            ),
. . .

Вы можете оформить заказ следующим файл для html таблицы, график использования:
https://github.com/tarun27sh/dash-on-heroku/blob/master/app.py

Редактировать: Вы можете попробовать (не проверено!):

html.Table(className='table',
    children = 
    [
        html.Tr( [html.Th(col) for col in dataframe.columns] )
    ] +
    [
        for i in range(min(len(dataframe), max_rows)):
            html.Tr( [html.Td('{}' .format(dataframe.iloc[i][col])) for col in dataframe.columns])
    ]
),
...