Turn a Python analysis into a beautiful document in 3 lines of code.
Datapane is a Python library which makes it simple to build reports from the common objects in your data analysis, such as pandas DataFrames, plots from Python visualisation libraries, and Markdown.
Reports can be exported as standalone HTML documents, with rich components which allow data to be explored and visualisations to be used interactively. You can also publish reports to our free public community platform or share them securely with your team and clients.
The best way to install Datapane is through pip or conda.
pip3 install -U datapane
conda install -c conda-forge "datapane>=0.10.0"
Datapane also works well in hosted Jupyter environments such as Colab or Binder, where you can install as follows:
!pip3 install --quiet datapane
Let's say you wanted to create a document with a table viewer and an interactive plot:
import pandas as pd import altair as alt import datapane as dp df = pd.read_csv('https://covid.ourworldindata.org/data/vaccinations/vaccinations-by-manufacturer.csv', parse_dates=['date']) df = df.groupby(['vaccine', 'date'])['total_vaccinations'].sum().reset_index() plot = alt.Chart(df).mark_area(opacity=0.4, stroke='black').encode( x='date:T', y=alt.Y('total_vaccinations:Q'), color=alt.Color('vaccine:N', scale=alt.Scale(scheme='set1')), tooltip='vaccine:N' ).interactive().properties(width='container') total_df = df[df["date"] == df["date"].max()].sort_values("total_vaccinations", ascending=False).reset_index(drop=True) total_styled = total_df.style.bar(subset=["total_vaccinations"], color='#5fba7d', vmax=total_df["total_vaccinations"].sum()) dp.Report("## Vaccination Report", dp.Plot(plot, caption="Vaccinations by manufacturer over time"), dp.Table(total_styled, caption="Current vaccination totals by manufacturer") ).save(path='report.html', open=True)
This would package a standalone HTML report document such as the following:
If you are writing a report with a lot of text e.g. an article or tutorial, try our Text Report web editor, where you can combine Markdown with assets uploaded from Python. Here's how you'd do it for the previous example:
dp.TextReport("## Vaccination Report", dp.Plot(plot, caption="Vaccinations by manufacturer over time"), dp.Table(total_styled, caption="Current vaccination totals by manufacturer") ).upload(name="Example vaccination report")
Note that you'll need an account on Datapane.com to use TextReports. This will bring up the web editor, where you can add additional commentary to these assets:
Here a few samples of the top reports created by the Datapane community. To see more, see our featured section.
- Tutorial Report by Datapane Team
- Coindesk analysis by Greg Allan
- COVID-19 Trends by Quarter by Keith Johnson
- Ecommerce Report by Leo Anthias
- Example Academic Paper by Kalvyn Roux
- Example Sales Report by Datapane Team
- Example Client Report by Datapane Team
- Exploration of Restaurants in Kyoto by Ryan Hildebrandt
- The Numbers on Particles by Ryan Hildebrandt
In addition to saving documents locally, you can use Datapane Community to publish your reports. Datapane Community is a free hosted platform which is used by tens of thousands of people each month to view and share Python reports.
- Reports can be published for free and shared publicly
- You can embed them into places like Medium, Reddit, or your own website (see here)
- Viewers can explore and download your data with additional DataTable analysis features
To get started, create a free API key (see here) and call the
upload function on your report,
r = dp.Report(dp.DataTable(df), dp.Plot(chart)) r.upload(name="2020 Stock Portfolio", open=True)
If you need private report sharing, Datapane Teams allows secure sharing of reports and the ability to deploy your Jupyter Notebooks or Python scripts as interactive apps.
- Share reports privately with your company or external clients
- Deploy Jupyter Notebooks and scripts as apps, with inputs that can be run by your team interactively to dynamically create results
- Schedule reports to automatically update
By default, the Datapane Python library collects error reports and usage telemetry.
This is used by us to help make the product better and to fix bugs.
If you would like to disable this, simply create a file called
no_analytics in your
datapane config directory, e.g.
$ mkdir -p ~/.config/datapane && touch ~/.config/datapane/no_analytics
$ mkdir -p ~/Library/Application\ Data/datapane && touch ~/Library/Application\ Data/no_analytics
PS> mkdir ~/AppData/Roaming/datapane -ea 0 PS> ni ~/AppData/Roaming/datapane/no_analytics -ea 0
You may need to try
~/AppData/Local instead of
~/AppData/Roaming on certain Windows configurations depending on the type of your user-account.