logo

... streamlit: pandas



Notes

This is what the dataset looks like in our video:

|       date | currency_code | name         | local_price |  dollar_ex | dollar_price |
| ---------- | ------------- | ------------ | ----------- | ---------- | ------------ |
| 2000-04-01 | ARS           | Argentina    |      2.500… |     1.000… |       2.500… |
| 2000-04-01 | AUD           | Australia    |      2.590… |     1.680… |       1.542… |
| 2000-04-01 | BRL           | Brazil       |      2.950… |     1.790… |       1.648… |

This is the app.py that we end up with at the end of the video;

import streamlit as st
import pandas as pd
import numpy as np
import matplotlib.pylab as plt

st.title('BigMac Index')

@st.cache
def load_data():
    data = pd.read_csv("bigmac.csv")
    return data.assign(date = lambda d: pd.to_datetime(d['date']))

df = load_data()

countries = st.sidebar.multiselect(
    "Select Countries",
    df['name'].unique()
)

varname = st.sidebar.selectbox(
    "Select Column",
    ("local_price", "dollar_price")
)

subset_df = df.loc[lambda d: d['name'].isin(countries)]

for name in countries:
    plotset = subset_df.loc[lambda d: d['name'] == name]
    plt.plot(plotset['date'], plotset[varname], label=name)
plt.legend()
st.pyplot()

if st.sidebar.checkbox("Show Raw Data"):
    st.markdown("### Raw Data")
    st.write(subset_df)

Note that we run this app from the command line by running;

streamlit run app.py

Feedback? See an issue? Something unclear? Feel free to mention it here.



If you want to be kept up to date, consider signing up for the newsletter.