{"library":"pyhdfe","title":"pyhdfe","description":"pyhdfe is a Python library for absorbing high-dimensional fixed effects, implementing the algorithm developed by Gaure (2013). It is primarily used in econometrics and statistics for estimating models with several high-dimensional fixed effects, optimized for sparse data structures. The current version is 0.2.0, with an intermittent release cadence.","language":"python","status":"active","last_verified":"Sun May 17","install":{"commands":["pip install pyhdfe"],"cli":null},"imports":["from pyhdfe import hdfe"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import numpy as np\nimport pandas as pd\nfrom pyhdfe import hdfe\n\n# Create some dummy data\nnp.random.seed(42)\nn_obs = 1000\nn_fixed_effects = 3\n\nX = pd.DataFrame(np.random.rand(n_obs, 5), columns=[f'x{i}' for i in range(5)])\ny = pd.Series(np.random.rand(n_obs))\n\nfixed_effects_data = []\nfor i in range(n_fixed_effects):\n    n_levels = np.random.randint(50, 200) # Varying number of levels\n    fixed_effects_data.append(pd.Series(np.random.randint(0, n_levels, n_obs)))\n\n# Absorb fixed effects from X and y\n# fixed_effects is a list of 1D arrays/Series representing each fixed effect column\n# absorb_cols specifies which columns from X to transform\n# drop_cols specifies columns to drop before transformation (often the intercept)\n\nX_transformed, y_transformed = hdfe.hdfe_cluster_col(\n    X,\n    y,\n    fixed_effects=fixed_effects_data,\n    absorb_cols=X.columns.tolist(), # Absorb all X columns\n    drop_cols=[], # No columns to drop in this example\n    get_residuals=True\n)\n\nprint(f\"Original X shape: {X.shape}\")\nprint(f\"Transformed X shape: {X_transformed.shape}\")\nprint(f\"Original y shape: {y.shape}\")\nprint(f\"Transformed y shape: {y_transformed.shape}\")","lang":"python","description":"This quickstart demonstrates how to use `hdfe.hdfe_cluster_col` to absorb multiple high-dimensional fixed effects from a feature matrix `X` and a target vector `y`. It generates synthetic data with several fixed effect columns and then applies the absorption, returning the transformed (residualized) `X` and `y`.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-17","installed_version":"0.2.0","pypi_latest":"0.2.0","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":7.1,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"pyhdfe","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"230.8M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"pyhdfe","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":7.2,"import_time_s":null,"mem_mb":null,"disk_size":"222M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"pyhdfe","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"246.0M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"pyhdfe","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":6.9,"import_time_s":null,"mem_mb":null,"disk_size":"235M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"pyhdfe","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"232.0M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"pyhdfe","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":6.8,"import_time_s":null,"mem_mb":null,"disk_size":"221M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"pyhdfe","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"230.8M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"pyhdfe","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":7,"import_time_s":null,"mem_mb":null,"disk_size":"220M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"pyhdfe","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"233.0M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"pyhdfe","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":7.7,"import_time_s":null,"mem_mb":null,"disk_size":"229M"}]}}