Python с каждым днем расправляет крылья. Наука о данных, аналитика данных, прогнозный анализ, описательное моделирование и ассоциативное моделирование стали быстрыми, эффективными и действенными благодаря фреймворкам Python.
Python недавно выпустил фреймворк Streamlit. Это позволяет пользователям создавать приложения для обработки данных с наименьшим количеством строк кода за несколько часов. В этом сообщении блога мы рассмотрим простые 7 пунктов, чтобы создать веб-приложение, управляемое данными, все на Python. Итак, без лишних слов, приступим ...
7 шагов для создания веб-приложения на Python
- Убедитесь, что Python установлен на пути к вашей системе. Чтобы установить Streamlit из командной строки, используйте следующую команду:
pip install streamlit #https://www.streamlit.io for more information and API documentation
2. Затем создайте файл с именем AmazonDataApp.py и начните писать код в этом файле приложения Python, как описано в следующих шагах.
3. Прежде всего, импортируйте библиотеки Python и дайте название приложению как:
#2. importing libraries import streamlit as st import pandas as pd import numpy as np import itertools as IT import altair as alt from PIL import Image #3. Title of the web application st.title("Interactive Data Driven Dashboard")
4. После импорта библиотек нам нужно загрузить данные в наше приложение, чтобы мы могли использовать эти данные позже. Я скачал набор данных из data.world, для загрузки данных мы напишем функцию:
#4. Load Data function @st.cache def load_data(nrows): data = pd.read_csv('path to data file/amazon-final.csv') data['date first available'] = pd.to_datetime(data['date first available']) data = data.sort_values(by=['date first available']) data = data.set_index(data['date first available']) data['discount percentage'] = (data['discount percentage'].str.replace("%",'')). astype(int) lowercase = lambda x: str(x).lower() data.rename(lowercase, axis='columns', inplace=True) return data # Loading data text... data_load_state = st.text('Loading data...') # Load 1000 rows of data data = load_data(1000) # Successfull data loaded data_load_state.text("Done! (using st.cache)")
5. Здесь мы создадим кнопку-переключатель в виде флажка, чтобы отображать данные, если и когда это необходимо.
#5. show whole dataset if st.checkbox('Show raw data'): st.subheader('Raw data') st.write(data)
6. Теперь мы создадим DataFrame, содержащий информацию о продавце и продукте, здесь мы пытаемся показать продукты, соответствующие продавцам. Сделаем это с помощью фильтра. Этот фильтр мы создадим с помощью опции множественный выбор. Этот код выполнит требуемую задачу:
#6. show seller and products based on the select filter sellers = data[['seller name', 'product name']] options = st.multiselect("Select seller name to show corresponding sold products: ",sellers['seller name'].unique()) st.write(options) show = sellers['seller name'].isin(options) data_seller = sellers[show] st.write(data_seller)
7. Наконец, мы покажем mrp, скидку% и цену продажи в виде столбчатой диаграммы. Покажем значения по годам. Для этого создадим фильтр по годам с помощью виджета слайдер. Код для этого следующий:
#7. Show mrp, discount % and sale price based on the selected year filter in the bar graph discounts = data[['mrp','discount percentage', 'sale price']] year_to_filter = st.slider('date', 2014, 2020, 2017) # min: 2015, max: 2020, default: 2017 filtered_data = discounts[data['date first available'].dt.year == year_to_filter] st.bar_chart(filtered_data)
8. Таким образом, наше веб-приложение, управляемое данными, готово к работе. Чтобы запустить это приложение в веб-браузере, мы введем следующий фрагмент кода в командной строке:
streamline run AmazonDataApp.py
После выполнения указанной выше строки кода приложение будет доступно как на локальном хосте, так и в сети.
Поздравляю! Вы создали очень простое, но интерактивное веб-приложение за несколько минут.
В результате веб-приложение будет выглядеть так:
Вот общий исходный код:
Вы можете скачать его с моей GitHub gist.
Удачного кодирования :)