Datapane is for people who analyze data in Python and need a way to share their results.
It provides a way to create reports programmatically from components that wrap around the common objects in analyses, such as:
Markdown and text
General files, such as images, PDFs, JSON data, etc.
Datapane reports are flexible and can also contain pages, tabs, drop downs, and more.
Once created, reports can be uploaded to the web, dynamically generated in the cloud, or embedded into your own application, where data can be explored, and visualizations can be used interactively.
import pandas as pdimport altair as altimport datapane as dpdf = 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)
If you want to share your report on the web, Datapane Community provides a free API and hosted platform for uploading and sharing reports. If you have already created an account and are signed in, you can upload your report, including datasets and plots, in a single Python command:
dp.Report(dp.Plot(plot),dp.DataTable(df)).upload(name='Vaccination Report', open=True) # publish & open report in the browser
Alternatively, you can create a Text Report on Datapane.com where you can combine long-form text and assets uploaded from your Python environment, like so:
dp.TextReport(dp.Plot(plot),dp.DataTable(df)).upload(id='AAAAAA') # Assumes you have an existing report with id AAAAAA
Once uploaded, you can share your report with your community, class, or friends by sharing the link.
In addition, you can embed your uploaded report into social platforms, like Reddit and Medium, where your readers can explore your data and plots interactively without leaving your content, like this:
If your team is using the Python data stack for analysis and visualization, but is still relying on a drag-and-drop BI tool to share results, Datapane Teams provides an API-first way to share reports directly from Python. This enables data teams to use the tools they are gifted at to drive business decisions, and allows stakeholders to self-serve on what the data team is building, instead of going through a backlog.
In addition to providing secure, authenticated report sharing, Datapane Teams allows automated report generation by allowing data teams to deploy their Python scripts and Jupyter Notebooks to the cloud. Reports can be generated from parameters entered through web forms, on a schedule, or on-demand through our HTTP and Python APIs.
Other features include:
APIs to utilise blobs and secrets in your scripts
Whitelabel embedding of Datapane reports in your own products
Groups and secure-sharing features to control access and share reports with external clients
and many more