Build data science documents in Python

Stop copying plots into slide decks or rebuilding Python analyses in a BI tool. Start sharing beautiful interactive documents from Python in 3 lines of code.

Report Example

Trusted by data teams and communities.

Datapane is the world's most popular way to share data science insights from Python.

Report Shares
1.5m+
Report Viewers
180k+

Featured Community Reports

Share and learn from reports built by Datapane's community of data storytellers.

Share Python documents in seconds

Build beautiful reports from blocks of DataFrames, plots, and files without leaving Python. Publish to Datapane to share and embed them online.

  • 1
    Analyse data in your own tools

    Write code and analyze data in your own editor or environment, whether its Jupyter, Colab, or Airflow.

  • 2
    Build reports in code

    Datapane's framework makes it easy to create rich reports from DataFrames, output files, and libraries like Altair and Plotly.

  • 3
    Publish and share

    Export as standalone HTML files, or publish to Datapane, where your reports can be shared and embedded.

"I like to do my analysis and visualization in Python, but I had no way to share results beyond screenshots. Datapane lets me create and share amazing interactive reports from Python in a few seconds."

Khuyen Tran, Data Scientist, Blogger
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().tail(1000).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')), ).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.DataTable(df, caption="Initial Dataset") ).upload(name='Covid Vaccinations Demo', description="Covid Vaccinations report, using data from ourworldindata", open=True)

Turn scripts and Jupyter Notebooks into self-service web apps

Deploy Jupyter Notebooks and Python scripts to Datapane Teams, where they can be run by your team or clients with parameters, scheduled to run automatically, and automate your other platforms with data science insights.

$ datapane app deploy
[-] Uploaded forecast.ipynb to /apps/prophet-forecast/
$ datapane schedule create prophet-forecast "* * * 1 *"
[-] Scheduled prophet-forecast for "* * * 1 *"

"Datapane is a speedy way to generate complex visualizations, and share these with non-technical people. It’s a cool tool that plugs right into our ML stack."

Marian Andrecki, Machine Learning Engineer at Proportunity
Customer profile user interface

Ready to get started?