代码之家  ›  专栏  ›  技术社区  ›  Coolio2654

Python Dash:将pandas数据帧加载到数据表中

  •  0
  • Coolio2654  · 技术社区  · 6 年前

    我一直在尝试用 Dash

    大多数示例说明如何手动从示例中已硬编码的数据帧中选取某些列/行,如 here pd.Dataframe() 变成一个 dash_table.DataTable() .

    我该怎么做?使用这些引用,我尝试了以下代码将数据帧的dict发送到 ,但没有显示任何内容。

    ## Imports
    import dash
    import dash_core_components as dcc
    import dash_html_components as html
    import dash_table
    
    from dash.dependencies import Input, Output, State
    
    import datetime as dt
    import pandas as pd
    import numpy as np
    
    ## Custom functions that creates the pandas dataframe
    from twitter_functions import old_tweets
    
    app = dash.Dash(dev_tools_hot_reload=True)
    app.scripts.config.serve_locally = True
    app.config['suppress_callback_exceptions'] = True
    
    
    app.layout = html.Div(children=[
    
        html.H3('Twitter App'),
    
        dcc.Input('ScreenName_Input', type='text'),
    
        html.Button(id='screenNames_submit_button', children='Submit'),
    
        dash_table.DataTable(id='tweet_table')
    
    ])
    
    @app.callback(
        Output(component_id='tweet_table', component_property='data'),
        [Input(component_id='screenNames_submit_button', component_property='n_clicks_timestamp')],
        [State(component_id='ScreenName_Input', component_property='value')]
    )
    def display_tweets(submit_button, screen_names):
        tweets = old_tweets(screen_names)
    
        return tweets.to_dict(orient='records')
    
    if __name__ == '__main__':
        app.run_server(debug=True)
    
    2 回复  |  直到 5 年前
        1
  •  8
  •   Coolio2654    6 年前

    之后 someone

    dash_table.DataTable(
        id='table',
        columns=[
        {'name': 'Column 1', 'id': 'column1'},
        {'name': 'Column 2', 'id': 'column2'},
        {'name': 'Column 3', 'id': 'column3'},
        {'name': 'Column 4', 'id': 'column4'},
        {'name': 'Column 5', 'id': 'column5'}]
    )
    

    ,然后发送熊猫数据帧的dict。

        2
  •  2
  •   Peter Leimbigler    6 年前

    这有点遥不可及,还没有经过测试,但是基于 https://community.plot.ly/t/dash-datatable-using-callbacks/6756

    尝试更改此行:

    dash_table.DataTable(id='tweet_table')
    

    dash_table.DataTable(id='tweet_table', rows=[{}])
    
        3
  •  2
  •   Shayki Abramczyk Cece Dong - MSFT    5 年前

         dt_col_param = []
    
         for col in output_df.columns:
                dt_col_param.append({"name": str(col), "id": str(col)})
    
        dash_table.DataTable(
                columns=dt_col_param,
                data=output_df.to_dict('records')
            )
    

    我最大的问题是,我的应用程序一直在向dash_table.DataTable(…)的“columns”参数传递任何内容时抛出异常。