return pd.read_csv( "https://www.dropbox.com/s/cat8vm6lchlu5tp/data.csv?dl=1", index_col=0) def get_regions(): df = get_data() return df["Region"].unique().tolist() def countries_handler(self: ctrl.ComboBox, regions: ctrl.ComboBox): df = get_data() self.items = df[df["Region"] == regions.value()]["Country"].unique().tolist() regions = ctrl.ComboBox(items=get_regions, label="Region") countries = ctrl.ComboBox(handler=countries_handler, label="Country", depends=[regions]) def country_output_handler(self: ctrl.Output, countries: ctrl.ComboBox): df = get_data() self.data = df[df["Country"] == countries.value()] data_by_country_app = ds.app( controls=[regions, countries], outputs=[ctrl.Output(handler=country_output_handler, depends=[countries])])
import dstack.controls as ctrl import dstack as ds import plotly.express as px @ds.cache() def get_data(): return px.data.stocks() def symbols_handler(self: ctrl.ComboBox): print("Calling symbols_handler") self.items = get_data().columns[1:].tolist() def output_handler(self, ticker): print("Calling output_handler") self.data = px.line(get_data(), x='date', y=ticker.value()) app = ds.app(controls=[(ctrl.ComboBox(handler=symbols_handler))], outputs=[(ctrl.Output(handler=output_handler))]) result = ds.push("logs", app) print(result.url)
import dstack.controls as ctrl import dstack as ds import plotly.express as px @ds.cache() def get_data(): return px.data.stocks() def output_handler(self, ticker): self.data = px.line(get_data(), x='date', y=ticker.value()) app = ds.app( controls=[(ctrl.ComboBox(items=get_data().columns[1:].tolist()))], outputs=[ ctrl.Output(data=ds.md( "Here's a simple application with **Markdown** and a chart.")), ctrl.Output(handler=output_handler) ]) result = ds.push("markdown", app) print(result.url)
from datetime import datetime, timedelta import dstack.controls as ctrl import dstack as ds import plotly.express as px import pandas_datareader as pdr def ticker_handler(self: ctrl.ComboBox): self.items = ['FB', 'AMZN', 'AAPL', 'NFLX', 'GOOG'] def output_handler(self: ctrl.Output, ticker: ctrl.ComboBox): if ticker.selected > -1: start = datetime.today() - timedelta(days=30) end = datetime.today() df = pdr.data.DataReader(ticker.items[ticker.selected], 'yahoo', start, end) self.data = px.line(df, x=df.index, y=df['High']) else: self.data = ds.md("No ticker selected") app = ds.app( controls=[ctrl.ComboBox(label="Select ticker", handler=ticker_handler)], outputs=[ctrl.Output(handler=output_handler)]) result = ds.push('controls/combo_box', app) print(result.url)
countries = df["Country"].unique() sectors = df["Sector"].unique() x1 = df[df["RenewalMonth"] >= 10].copy() x1a = transform(x1, countries, sectors) return x1, x1a x1, x1a = get_data() months = [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ] regions_ctrl = ctrl.ComboBox(x1["Region"].unique().tolist(), label="Region") months_ctrl = ctrl.ComboBox(['Oct', 'Nov', 'Dec'], label="Month") churn_ctrl = ctrl.CheckBox(label="Churn", selected=True, require_apply=False) def app_handler(self: ctrl.Output, regions_ctrl: ctrl.ComboBox, months_ctrl: ctrl.ComboBox, churn_ctrl: ctrl.CheckBox): x1, x1a = get_data() y1_pred = get_model().predict(x1a) data = x1.copy() data["Predicted Churn"] = y1_pred data["Predicted Churn"] = data["Predicted Churn"].apply( lambda x: "Yes" if x == 1.0 else "No") data["RenewalMonth"] = data["RenewalMonth"].apply(lambda x: months[x - 1]) data = data.drop(["y2015", "y2016", "y2017", "y2018", "y2019", "Churn"], axis=1)
return pd.read_csv( "https://www.dropbox.com/s/cat8vm6lchlu5tp/data.csv?dl=1", index_col=0) def get_regions(): df = get_data() return df["Region"].unique().tolist() def countries_handler(self: ctrl.ComboBox, regions: ctrl.ComboBox): df = get_data() self.items = df[df["Region"] == regions.value()]["Country"].unique().tolist() regions = ctrl.ComboBox(items=get_regions, label="Region") countries = ctrl.ComboBox(handler=countries_handler, label="Country", multiple=True, depends=[regions]) def output_handler(self: ctrl.Output, countries: ctrl.ComboBox): df = get_data() self.data = df[df["Country"].isin(countries.value())] app = ds.app(controls=[regions, countries], outputs=[ds.Output(handler=output_handler, depends=[countries])]) result = ds.push('combo_box', app)