У меня есть данные этого типа:
Date,FS,Total,Used,Mount
2020-01-25-12-00,/dev/hd1/,350,300,/dev/mount1
2020-01-25-18-00,/dev/hd2/,370,320,/dev/mount2
2020-01-26-06-00,/dev/hd3/,395,350,/dev/mount3
2020-01-26-12-00,/dev/hd1/,350,300,/dev/mount1
2020-01-26-18-00,/dev/hd2/,370,320,/dev/mount2
2020-01-27-06-00,/dev/hd3/,395,350,/dev/mount3
2020-01-27-12-00,/dev/hd1/,350,300,/dev/mount1
2020-01-27-18-00,/dev/hd2/,370,320,/dev/mount2
2020-01-28-06-00,/dev/hd3/,395,350,/dev/mount3
2020-01-28-12-00,/dev/hd1/,350,300,/dev/mount1
2020-01-28-18-00,/dev/hd2/,370,320,/dev/mount2
2020-01-29-06-00,/dev/hd3/,395,350,/dev/mount3
Я могу отобразить такую таблицу:
#!/usr/bin/env python3
import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html
import dash_table
import sys
import os
import pandas as pd
df = pd.read_csv('/home/tbenedet/Desktop/Servers/Server2/2019-10/data.txt')
app = dash.Dash(__name__)
app.layout = dash_table.DataTable(
id='table',
columns=[{"name": i, "id": i} for i in df.columns ],
data=df.to_dict('records'),
)
if __name__ == '__main__':
app.run_server()
Теперь я перехожу по этой ссылке, чтобы создать раскрывающийся список с моим списком FS из моего CSV и для отображения моего CSV: GitHub учебник
Но когда я пытаюсь так:
#!/usr/bin/env python3
import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc
import dash_html_components as html
import dash_table
import sys
import os
import pandas as pd
df = pd.read_csv('/home/tbenedet/Desktop/Servers/Server2/2019-10/data.txt')
def generate_table(dataframe, max_rows:''):
return html.Table(
[html.Tr([html.Th(col) for col in dataframe.columns])] +
[html.Tr([
html.Td(dataframe.iloc[i][col]) for col in dataframe.columns
]) for i in range(min(len(dataframe), max_rows))]
)
app = dash.Dash(__name__)
app.layout = html.Div(children=[
html.H4(children='DF command output table'),
dcc.Dropdown(id='dropdown', options=[
{'label': i, 'value': i} for i in df.FS.unique()
], multi=True, placeholder='Filter by FS...'),
html.Div(id='table-container')
])
@app.callback(
dash.dependencies.Output('table-container', 'children'),
[dash.dependencies.Input('dropdown', 'value')])
def display_table(dropdown_value):
if dropdown_value is None:
return generate_table(df)
dff = df[df.FS.str.contains('|'.join(dropdown_value))]
return generate_table(dff)
if __name__ == '__main__':
app.run_server()
Я не ставлю значение в значение max_rows
, потому что в моем csv столько строк ... У меня выпадающий список со списком FS, но таблица не отображается ...
Можете ли вы показать мне, как исправить это?