Re: Untitled

From Lousy Kitten, 3 Months ago, written in Plain Text, viewed 78 times. This paste is a reply to Untitled from Lousy Sheep - view diff
URL http://codebin.org/view/622f7cbc Embed
Download Paste or View Raw
  1.  
  2.  
  3. # задаём данные для отрисовки
  4. from sqlalchemy import create_engine
  5.  
  6. # пример подключения к базе данных для Postresql
  7. #db_config = {'user': 'my_user',
  8. #             'pwd': 'my_user_password',
  9. #             'host': 'localhost',
  10. #             'port': 5432,
  11. #             'db': 'games'}
  12. #engine = create_engine('postgresql://{}:{}@{}:{}/{}'.format(db_config['user'],
  13. #                                                            db_config['pwd'],
  14. #                                                            db_config['host'],
  15. #                                                            db_config['port'],
  16. #                                                            db_config['db']))
  17. # пример подключения к базе данных для Sqlite
  18. engine = create_engine('sqlite:////db/games.db', echo = False)
  19.  
  20. # получаем сырые данные
  21. query = '''
  22.             SELECT * FROM data_raw
  23.         '''
  24. games_raw = pd.io.sql.read_sql(query, con = engine)
  25.  
  26. # преобразуем типы
  27. games_raw['year_of_release'] = pd.to_datetime(games_raw['year_of_release'])
  28. columns = ['na_players', 'eu_players', 'jp_players', 'other_players']
  29. for column in columns: games_raw[column] = pd.to_numeric(games_raw[column], errors = 'coerce')
  30. games_raw['total'] = games_raw[['na_players',
  31.                                 'eu_players',
  32.                                 'jp_players',
  33.                                 'other_players']].sum(axis = 1).round(2)
  34.  
  35. # сформируйте графики для отрисовки
  36. games_raw = games_raw[['name', 'platform', 'genre', 'total']].sort_values(by = 'total', ascending = False).head(10)  # напишите код
  37.  
  38. data = [go.Table(header = {'values': ['<b>Игра</b>', '<b>Платформа</b>',
  39.                                       '<b>Жанр</b>', '<b>Продажи по всем регионам</b>'],
  40.                            'fill_color': 'lightgrey',
  41.                            'align': 'center'},
  42.                  cells = {'values': games_raw.T.values})] # напишите код
  43.  
  44. # задаём лейаут
  45. external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
  46. app = dash.Dash(__name__, external_stylesheets=external_stylesheets,compress=False)
  47. app.layout = html.Div(children=[  
  48.    
  49.     # формируем заголовок тегом HTML
  50.     html.H1(children = 'Топ-10 игр по продажам'),
  51.  
  52.     dcc.Graph(
  53.         figure = {'data': data,
  54.                   'layout': go.Layout()
  55.                  },
  56.         id = 'games_by_genre' # напишите код
  57.     ),        
  58.  
  59. ])
  60.  
  61. # описываем логику дашборда
  62. if __name__ == '__main__':
  63.     app.run_server(host='0.0.0.0', port=3000)
  64.  

Reply to "Re: Untitled"

Here you can reply to the paste above