{"id":24327,"library":"pyfixest","title":"PyFixest","description":"Fast high-dimensional fixed effect estimation library for Python, following the syntax of the R fixest package. Current version: 0.50.1. Released ~monthly. Supports OLS, GLM, IV, quantile regression, and robust/clustered inference with multiple demeaner backends (including Rust).","status":"active","version":"0.50.1","language":"python","source_language":"en","source_url":"https://github.com/py-econometrics/pyfixest","tags":["fixed-effects","econometrics","regression","high-dimensional","fixest"],"install":[{"cmd":"pip install pyfixest","lang":"bash","label":"PyPI"},{"cmd":"pip install 'pyfixest[dev]'","lang":"bash","label":"With dev dependencies"}],"dependencies":[{"reason":"Core array operations","package":"numpy","optional":false},{"reason":"Data handling","package":"pandas","optional":false},{"reason":"Formula parsing","package":"formulaic","optional":false},{"reason":"Optimization for GLMs","package":"scipy","optional":false},{"reason":"Alternative demeaner backend","package":"pyhdfe","optional":true}],"imports":[{"note":"This is actually correct - both work, but 'from pyfixest import feols' is clearer for single function use.","wrong":"import pyfixest as pf; pf.feols(...)","symbol":"feols","correct":"from pyfixest import feols"},{"note":"Direct import from top-level is preferred; internal module paths may change.","wrong":"from pyfixest.estimation import fepois","symbol":"fepois","correct":"from pyfixest import fepois"}],"quickstart":{"code":"import pandas as pd\nfrom pyfixest import feols\n\n# Load sample data\ndf = pd.read_csv('https://github.com/py-econometrics/pyfixest/raw/master/data/airbnb.csv')\n\n# Estimate fixed effects model\nfit = feols('price ~ distance | property_type', data=df)\nprint(fit.summary())","lang":"python","description":"Estimate a fixed effects linear regression using a sample dataset. Replace 'distance' and 'property_type' with actual columns from the dataset."},"warnings":[{"fix":"Set vcov='cluster' explicitly: feols(..., vcov={'CRV1': 'firm'})","message":"Default inference changed in v0.40.0: 'iid' is now default (previously it was cluster by first fixed effect). This replicates R fixest 0.13 behavior. Existing scripts that relied on clustered standard errors without explicitly specifying vcov will silently get different results.","severity":"breaking","affected_versions":">=0.40.0,<0.50.0"},{"fix":"Use 'demeaner_backend' instead of 'demean_backend'.","message":"The 'demean_backend' argument was renamed to 'demeaner_backend' in v0.50.0. Old argument still works but will be removed.","severity":"deprecated","affected_versions":">=0.50.0"},{"fix":"Review the new formula syntax docs: https://pyfixest.org/formula.html","message":"Formula handling changed in v0.50.0: the 'i()' operator for interactions now behaves differently. Old usage may break or yield unexpected results.","severity":"gotcha","affected_versions":">=0.50.0"},{"fix":"Upgrade to >=0.30.2a or use 'demeaner_backend='pyhdfe''.","message":"Windows users with Rust backend may encounter a TypeError in v0.30.2. Fixed in v0.30.2a.","severity":"gotcha","affected_versions":"0.30.2"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Use correct import: 'from pyfixest import feols' or 'import pyfixest as pf; pf.feols(...)'","cause":"Old import path from internal modules; or pyfixest not installed.","error":"ImportError: cannot import name 'feols' from 'pyfixest'"},{"fix":"Use vcov={'CRV1': 'cluster_variable_name'}.","cause":"Passing a string like 'cluster' instead of dict.","error":"ValueError: The `vcov` argument must be a dict with keys 'CRV1', 'CRV3', or 'iid'."},{"fix":"Upgrade to >=0.30.2a or use different backend.","cause":"Bug in v0.30.1 on Windows due to Rust ffi typing.","error":"TypeError: 'NoneType' object is not iterable when using demeaner_backend='rust-cg'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}