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 (when published)

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.5.tar.gz (107.7 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.5-py3-none-any.whl (59.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: maketables-0.1.5.tar.gz
  • Upload date:
  • Size: 107.7 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.5.tar.gz
Algorithm Hash digest
SHA256 f340c12bf94998b7fb1ef6fed49aeb403d5a6d0518c8fe766689c610ba0edd89
MD5 e81b642dc67bfc44d4b1da6f45fe2f88
BLAKE2b-256 027b6c27f29b6948760e8a768d4734869c88a9ce878ba2a9ec279a88c33548a2

See more details on using hashes here.

File details

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

File metadata

  • Download URL: maketables-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 59.4 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.5-py3-none-any.whl
Algorithm Hash digest
SHA256 ce889f8cb56b51e71a6b45b5079816556193e86ea3ba1fc89c113b6e71dc02db
MD5 7bf5c8f48e266316537ccaaccc371f8d
BLAKE2b-256 6e5406015ce44a12baab341682753bda353a6b1c60f9033ad9e9d6aa1d54562d

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