Skip to main content

A Python package for creating publication-ready tables from regression results (statsmodels, pyfixest, linearmodels), descriptive statistics, and balance tables with output to LaTeX, Word, and HTML/Great Tables

Project description

MakeTables

A Python package for creating publication-ready tables from regression results (statsmodels, pyfixest, linearmodels), descriptive statistics, and balance tables with output to LaTeX, Word, and HTML via Great Tables. To get started, check out the Getting Started Notebook.

Overview

MakeTables provides a unified interface for generating tables such as:

The package supports multiple output formats including:

  • Great Tables (HTML)
  • LaTeX
  • Microsoft Word (docx) documents

Origin

MakeTables originated as the table output functionality within the pyfixest package and has been moved to this standalone package to provide broader table creation capabilities also supporting other statistical packages.

Authors

Installation

From PyPI

pip install maketables

Development Installation

# Clone the repository
git clone https://github.com/yourusername/maketables.git
cd maketables

# Install in development mode
pip install -e .

Quick Start

Descriptive Statistics Table

import pandas as pd
import maketables as mt

# Load your data (here using a sample Stata dataset with the import_dta function that also stores variable labels)
df = mt.import_dta("https://www.stata-press.com/data/r18/auto.dta")


# Create descriptive statistics table
mt.DTable(df, vars=["mpg","weight","length"], bycol=["foreign"])

Regression Tables

with pyfixest

import pyfixest as pf

# Fit your models here using pyfixest
est1 = pf.feols("mpg ~ weight", data=df)
est2 = pf.feols("mpg ~ weight + length", data=df)

# Make the table
mt.ETable([est1, est2])

with statsmodels

import statsmodels.formula.api as smf

# Generate a dummy variable and label it
df["foreign_i"] = (df["foreign"] == "Foreign")*1
mt.set_var_labels(df, {"foreign_i": "Foreign (indicator)"})

# Fit your models 
est1 = smf.ols("foreign_i ~ weight + length + price", data=df).fit()
est2 = smf.probit("foreign_i ~ weight + length + price", data=df).fit(disp=0)

# Make the table
mt.ETable([est1, est2], model_stats=["N","r2","pseudo_r2",""], model_heads=["OLS","Probit"])

Main Classes

MTable

Base class for all table types with common functionality:

  • Multiple output formats (Great Tables, LaTeX, Word)
  • Flexible styling and formatting options
  • Save and export capabilities
  • Can also update tables in existing word documents
  • Adapted for use in Jupyter Notebooks and for quarto use (tables automatically rendered as html in notebooks and as latex when rendering to pdf in quarto)

DTable

Extends MTable for descriptive statistics:

  • Automatic calculation of summary statistics
  • Grouping by categorical variables (rows and columns)
  • Customizable statistic labels and formatting

ETable

Extends MTable for econometric model results:

  • Support for statsmodels, pyfixest, and (more experimental) linearmodels
  • Many layout options (relabelling of variables, keep/drop, choice of reported statistics, column headings,...)

BTable

Extends MTable for simple balance tables.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • Built on the excellent pyfixest package for econometric models
  • Uses Great Tables for beautiful HTML table output

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

maketables-0.1.6.tar.gz (115.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

maketables-0.1.6-py3-none-any.whl (60.1 kB view details)

Uploaded Python 3

File details

Details for the file maketables-0.1.6.tar.gz.

File metadata

  • Download URL: maketables-0.1.6.tar.gz
  • Upload date:
  • Size: 115.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for maketables-0.1.6.tar.gz
Algorithm Hash digest
SHA256 587f2f534c7e35fd01024824dc16fc69fadf24a5693b46d1af6f56d9ee6d2890
MD5 eeb670b84b013948370942cf04d4374c
BLAKE2b-256 bf539b6e0bc0c82b5bcf4b48d8710adf27be1647be7c07723ab2cdb3cbb5bed2

See more details on using hashes here.

File details

Details for the file maketables-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: maketables-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 60.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for maketables-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 e583e73844c2eb98fab34d7563be464d68d008ce96b6346f0703ac449a795d41
MD5 705e2b6da942070523e04131e962a839
BLAKE2b-256 00fa04d1e29b1670391fbe2f6ede554eec434650c57b5cf8f7d85bdbbaacb71f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page