   enough to detect these mutations and show a loud warning explaining how to
   fix the problem.
While these limitations are important to keep in mind, they tend not to be an
issue a surprising amount of the time. Those times, this cache is really
transformational.
Whenever you have a long-running computation in your code, consider
refactoring it so you can use @st.cache, if possible.
Now that you know how caching with Streamlit works, let’s get back to the Uber
pickup data.
Inspect the raw data
It's always a good idea to take a look at the raw data you're working with
before you start working with it. Let's add a subheader and a printout of the
raw data to the app:
python
st.subheader('Raw data')
st.write(data)
In the Main concepts guide you learned that
st.write will render almost anything you pass
