A quick and easy way to convert a Pandas DataFrame to a Tableau .hyper or .tde extract.
A quick and easy way to convert a Pandas DataFrame to a Tableau .tde or .hyper extract.
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.
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
example_df = pd.read_csv(r'example/BrFlights2.csv', encoding = 'iso-8859-1')
# Format dates in pandas
example_df['Partida.Prevista'] = pd.to_datetime(example_df['Partida.Prevista'], format = '%Y-%m-%d')
example_df['Partida.Real'] = pd.to_datetime(example_df['Partida.Real'], format = '%Y-%m-%d')
example_df['Chegada.Prevista'] = pd.to_datetime(example_df['Chegada.Prevista'], format = '%Y-%m-%d')
example_df['Chegada.Real'] = pd.to_datetime(example_df['Chegada.Real'], format = '%Y-%m-%d')
# Set up a spatial column
example_df.loc[:, 'SpatialDest'] = example_df['LongDest'].apply( lambda x: "POINT (" + str( round(x, 6) ) ) + \
example_df['LatDest'].apply( lambda x: " "+str( round(x, 6) ) + ")" )
# Change to pandleau object
df_tableau = pandleau(example_df)
# Define spatial column
df_tableau.set_spatial('SpatialDest', indicator=True)
# Write .tde or .hyper Extract!
df_tableau.to_tableau('test.hyper', add_index=False)
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
RTableau Convert R data.frame to Tableau Extract using pandleau
This project is licensed under the MIT License - see the LICENSE.md file for details