pyfixest
Fast high dimensional fixed effect estimation following syntax of the fixest R package.
What it is and what it does
PyFixest is a Python implementation of econometric fixed effects regression that closely mirrors the R package fixest's API and defaults. It handles estimation of linear models (OLS, WLS), instrumental variables (IV), generalized linear models (Poisson, logit, probit), and quantile regression in the presence of high-dimensional fixed effects—a common problem in applied econometrics where naive approaches become computationally infeasible. The package offers multiple demeaning backends (MAP, within LSMR on CPU, and torch LSMR on GPU) to trade off speed and memory usage.
Beyond estimation, PyFixest provides a full suite of econometric tools: robust and cluster-robust variance-covariance estimators, wild cluster bootstrap inference, multiple hypothesis corrections, randomization inference, and specialized estimators like the causal cluster variance estimator (CCV). It also supports difference-in-differences designs (TWFE, Did2s, local projections, Sun-Abraham event studies), regression decomposition, and publication-ready table generation via Great Tables or LaTeX. The 10 runtime dependencies (numpy, pandas, scipy, formulaic, joblib, narwhals, seaborn, tabulate, tqdm, maketables) provide the numerical, data manipulation, and visualization infrastructure.
Use it for:
- Estimate causal effects in panel data using difference-in-differences or event study designs with multiple fixed effects.
- Perform robust inference on high-dimensional models where standard OLS demeaning is computationally prohibitive.
- Generate publication-ready regression tables with cluster-robust standard errors and multiple hypothesis corrections.
- Run quantile regression with fixed effects to study heterogeneous treatment effects across the outcome distribution.
- Conduct wild cluster bootstrap inference for valid inference under arbitrary cluster correlation structures.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
PyFixest performs fast high-dimensional fixed effects regression in Python, supporting OLS, WLS, IV, GLMs, quantile regression, and difference-in-differences estimation with multiple inference and post-estimation tools.
Yes, if you work in econometrics or causal inference with panel data or high-dimensional fixed effects. PyFixest is actively maintained, has no known vulnerabilities, and offers a mature feature set (OLS, IV, GLMs, DiD, quantile regression, robust inference) with GPU acceleration available. The MIT license is permissive. Install friction is moderate due to 10 dependencies, but wheels are widely available. Not worth installing if your regression problems are low-dimensional or you don't need the specialized econometric tools.
Install
pyfixest on PyPI
pip
pip install pyfixestuv
uv add pyfixestpoetry
poetry add pyfixestInstalling pyfixest
Before you install
Medium install friction: 10 runtime dependencies including numpy, pandas, scipy, and specialized libraries like formulaic and narwhals. Wheels available for Python 3.10–3.14 across Linux, macOS, and Windows. Active maintenance with a release 64 days ago.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution in commercial or private projects.
Quickstart
import pyfixest as pf
data = pf.get_data()
result = pf.feols("Y ~ X1 | f1 + f2", data=data)
result.summary()
Requires Python 3.10 or later. Optional GPU acceleration requires PyTorch with CUDA support installed separately.
Verify before relying
- Whether the torch LSMR backend (GPU acceleration) is production-ready or still experimental beyond the deprecation note.
- Performance characteristics of the default Rust within LSMR backend compared to the MAP backend on typical datasets.
- Whether wildboottest integration is included in the base install or requires a separate optional dependency.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | 10 — formulaic, joblib, maketables, narwhals, numpy, pandas, scipy, seaborn, tabulate, tqdm |
| Maintenance | actively maintained — 64 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 81,153/month — #14,245 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pyfixest-0.60.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pyfixest-0.60.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; pyfixest-0.60.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl; pyfixest-0.60.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; pyfixest-0.60.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl; pyfixest-0.60.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pyfixest-0.60.0-cp310-cp310-musllinux_1_2_aarch64.whl; pyfixest-0.60.0-cp310-cp310-musllinux_1_2_armv7l.whl; pyfixest-0.60.0-cp310-cp310-musllinux_1_2_i686.whl; pyfixest-0.60.0-cp310-cp310-musllinux_1_2_x86_64.whl; pyfixest-0.60.0-cp310-cp310-win_amd64.whl; pyfixest-0.60.0-cp311-cp311-macosx_10_12_x86_64.whl; pyfixest-0.60.0-cp311-cp311-macosx_11_0_arm64.whl; pyfixest-0.60.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; pyfixest-0.60.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; pyfixest-0.60.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl; pyfixest-0.60.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; pyfixest-0.60.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl; pyfixest-0.60.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; pyfixest-0.60.0-cp311-cp311-musllinux_1_2_aarch64.whl
Tags
More Mathematics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
kiwisolverkiwisolver is a Python binding to a fast C++…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
torchPyTorch provides GPU-accelerated tensor…
permissive · top 1,000 on PyPI
onnxruntimeonnxruntime loads and executes Open Neural…
permissive · top 1,000 on PyPI
linearmodelsProvides panel regression, instrumental…
unclear · top 15,000 on PyPI
pyhdfePyHDFE absorbs high-dimensional fixed effects…
permissive · top 15,000 on PyPI
quantile-forestQuantile regression forests for estimating…
permissive · top 15,000 on PyPI
econmlEconML estimates heterogeneous treatment…
permissive · top 15,000 on PyPI
glumglum is a high-performance Python library for…
permissive · top 15,000 on PyPI
rdrobustImplements regression discontinuity (RD) design…
copyleft · top 15,000 on PyPI
spglmFits Gaussian, Poisson, QuasiPoisson, and…
permissive · top 15,000 on PyPI
polars-olsPolars OLS provides Rust-optimized linear…
unclear · top 15,000 on PyPI
spregspreg estimates simultaneous autoregressive…
permissive · top 15,000 on PyPI
statsmodelsstatsmodels provides statistical models,…
permissive · top 1,000 on PyPI