# MaxHalford/prince

:crown: Multivariate exploratory data analysis in Python — PCA, CA, MCA, MFA, FAMD, GPA

Repository: https://github.com/MaxHalford/prince
Canonical: https://ross.abutalabs.com/products/prince
Homepage: https://maxhalford.github.io/prince
Language: Python
License: MIT
License Family: permissive
Topics: pandas, pca, ca, mca, python, svd, factor-analysis, correspondence-analysis, principal-component-analysis, scikit-learn, multiple-factor-analysis, multiple-correspondence-analysis, mfa, famd, procrustes
Last push: 2026-07-21T11:40:58+00:00

## Health v2 (maintenance only)
Score: 74/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 93, release rhythm 35, longevity 100
- inputs: {"age_days": 3602, "days_push": 43, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1479, forks 194 (observed 2026-08-28T04:04:50.627015+00:00)

## What it is
Prince is a Python library for multivariate exploratory data analysis, implementing PCA, CA, MCA, MFA, FAMD, GPA, and PGA with a scikit-learn-style API. It is built on pandas and uses Altair for plotting, with correctness tested against scikit-learn and R's FactoMineR.

## Use cases
- run principal component analysis on a pandas dataframe
- do multiple correspondence analysis on categorical survey data
- analyze mixed numerical and categorical data with FAMD
- perform multiple factor analysis on grouped columns
- compute correspondence analysis of a contingency table
- compare shapes with generalized Procrustes analysis
- plot PCA component charts in Python

## When to choose
- you need FactoMineR-style factor analysis methods in Python
- you want a scikit-learn-like fit/transform API for dimensionality reduction
- you work with pandas dataframes and want built-in Altair visualizations
- you need MCA or FAMD, which scikit-learn lacks

## When to avoid
- you need deep learning or neural dimensionality reduction like autoencoders
- you need general-purpose machine learning pipelines beyond exploratory analysis
- you need big-data distributed PCA beyond memory-sized dataframes

## Facets
- artifact type: library
- maturity: stable
- function: data-science, machine-learning, data-visualization
- domain: data-science, data-visualization
- platform: python
- tags: pca, correspondence-analysis, mca, mfa, famd, svd, factor-analysis, scikit-learn-api, exploratory-data-analysis, pandas, statistics

## Member repositories
- MaxHalford/prince (main) score 74

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:50.627015+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T04:34:17.071449+00:00, confidence not recorded.
  - readme: https://github.com/MaxHalford/prince (fetched 2026-08-28T04:04:50.627015+00:00, sha f0c60c90aab0)
  - homepage: https://maxhalford.github.io/prince (fetched 2026-08-29T11:41:16.651201+00:00, sha 79d6d05f45ab)
- Data as of 2026-08-30T08:39:29.467469+00:00.
