bwiley1
pandleau
Python

A quick and easy way to convert a Pandas DataFrame to a Tableau .hyper or .tde extract.

Last updated Apr 8, 2026
59
Stars
18
Forks
12
Issues
0
Stars/day
Attention Score
32
Language breakdown
No language data available.
Files click to expand
README

pandleau

A quick and easy way to convert a Pandas DataFrame to a Tableau .tde or .hyper extract.

Getting Started

Prerequisites

- If you want to output as a .tde format, you'll need to install TableauSDK directly from Tableau's site here. - If you want to output as a .hyper format, you'll need to install Extract API 2.0 directly from Tableau's site here. - Although Tableau's site claims Python 3 is not supported, this module has been tested to work fully functionally on Python 3.6.

Installing

Once installing TableauSDK is done, download this repository, navigate to your downloads file and run the following in cmd or terminal:
python -m setup.py install
You can also install pandleau using pip:
pip install pandleau
But note that this will throw a warning to install tableausdk using the above link in Prerequisites.

Example

I grabbed the following Brazil flights data off of kaggle for this example: https://www.kaggle.com/microtang/exploring-brazil-flights-data/data.
import pandas as pd
from pandleau import *

Import the data

exampledf = pd.readcsv(r'example/BrFlights2.csv', encoding = 'iso-8859-1')

Format dates in pandas

exampledf['Partida.Prevista'] = pd.todatetime(example_df['Partida.Prevista'], format = '%Y-%m-%d') exampledf['Partida.Real'] = pd.todatetime(example_df['Partida.Real'], format = '%Y-%m-%d') exampledf['Chegada.Prevista'] = pd.todatetime(example_df['Chegada.Prevista'], format = '%Y-%m-%d') exampledf['Chegada.Real'] = pd.todatetime(example_df['Chegada.Real'], format = '%Y-%m-%d')

Set up a spatial column

exampledf.loc[:, 'SpatialDest'] = exampledf['LongDest'].apply( lambda x: "POINT (" + str( round(x, 6) ) ) + \ example_df['LatDest'].apply( lambda x: " "+str( round(x, 6) ) + ")" )

Change to pandleau object

dftableau = pandleau(exampledf)

Define spatial column

dftableau.setspatial('SpatialDest', indicator=True)

Write .tde or .hyper Extract!

dftableau.totableau('test.hyper', add_index=False)

Tableau Server/Online Automation

Eric Chan (erickhchan) wrote a really cool blog post on using Python to blend and clean data before pushing it to Tableau Online (which is a SaaS version of Tableau Server). This is a great way to learn how to automate the data refresh process with Tableau Server Client and Pandleau. Check out his blog post here: https://www.erickhchan.com/data/2019/03/18/python-tableau-server.html

Authors

Related Project

RTableau Convert R data.frame to Tableau Extract using pandleau

License

This project is licensed under the MIT License - see the LICENSE.md file for details
🔗 More in this category

© 2026 GitRepoTrend · bwiley1/pandleau · Updated daily from GitHub