prince
Factor analysis in Python: PCA, CA, MCA, MFA, FAMD, GPA, PGA
What it is and what it does
Prince is a Python library for multivariate exploratory data analysis that implements seven factor analysis methods: PCA, CA, MCA, MFA, FAMD, GPA, and PGA. It follows scikit-learn conventions, making it familiar to users of that ecosystem. The library was originally created in 2016 and underwent a major revamp in 2022 to improve robustness and feature coverage.
The package works with tabular data and supports advanced features like supplementary rows and columns, as well as row and column weights. It integrates with pandas for data handling and Altair for interactive visualization of results. Prince is tested against scikit-learn and FactoMineR (via rpy2) to ensure correctness, and PGA is validated against geomstats.
Use it for:
- Reduce dimensionality of numerical datasets while preserving variance structure using PCA.
- Analyze relationships between categorical variables in contingency tables with CA or MCA.
- Explore mixed numerical and categorical data simultaneously using FAMD.
- Analyze multiple groups of related columns with MFA.
- Compare shapes across multiple datasets using GPA.
- Perform dimensionality reduction on data constrained to a manifold using PGA.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Prince implements multivariate exploratory data analysis methods including PCA, CA, MCA, MFA, FAMD, GPA, and PGA with a scikit-learn API for tabular data summarization.
Yes. Prince is actively maintained, has no known vulnerabilities, installs with low friction, and provides a comprehensive suite of factor analysis methods under a permissive MIT license. It is well-tested against established implementations and suitable for exploratory data analysis workflows that need more than standard PCA.
Install
prince on PyPI
pip
pip install princeuv
uv add princepoetry
poetry add princeInstalling prince
Before you install
Low install friction with a pure-Python wheel. Actively maintained as of 45 days ago with a revamp completed in 2022. Requires Python 3.10 or later.
License in practice
MIT license is permissive; you can use, modify, and distribute Prince freely in commercial and private projects with minimal restrictions.
Quickstart
pip install prince
import prince
import pandas as pd
pca = prince.PCA(n_components=5)
pca = pca.fit(your_dataframe)
transformed = pca.transform(your_dataframe)
Requires Python 3.10 or later.
Verify before relying
- Whether supplementary rows/columns and row/column weights work reliably across all seven analysis methods.
- Performance characteristics on datasets larger than those shown in examples.
- Completeness of interactive plotting features when deployed outside Jupyter environments.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — scikit-learn, pandas, altair, typing-extensions |
| Maintenance | actively maintained — 45 days since the last release |
| First released | |
| Downloads | 139,821/month — #11,288 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: prince-0.20.1-py3-none-any.whl
Tags
More Information Analysis packages
A drop-in replacement for Python's standard…
permissive · top 100 on PyPI
pyarrowpyarrow provides Python bindings to Apache…
permissive · top 100 on PyPI
networkxNetworkX provides data structures and…
permissive · top 1,000 on PyPI
snowflake-connector-pythonConnects Python applications to Snowflake data…
permissive · top 1,000 on PyPI
contourpyContourPy calculates contours of 2D…
permissive · top 1,000 on PyPI
snowflake-snowpark-pythonSnowpark Python provides APIs to query and…
permissive · top 1,000 on PyPI
umap-learnUMAP reduces high-dimensional data to lower…
permissive · top 5,000 on PyPI
copulasCopulas models multivariate statistical…
unclear · top 15,000 on PyPI
aimsim-coreProvides core molecular featurization and…
permissive · top 15,000 on PyPI
percentifyPercentify provides one-call exploratory…
permissive · top 15,000 on PyPI
esdaesda computes global and local spatial…
permissive · top 15,000 on PyPI
kmodesImplements k-modes and k-prototypes clustering…
permissive · top 15,000 on PyPI
tabmatProvides efficient matrix classes for tabular…
unclear · top 15,000 on PyPI
gtsamGTSAM is a Python wrapper around a C++ library…
permissive · top 15,000 on PyPI
ucimlrepoImports datasets from the UC Irvine Machine…
permissive · top 15,000 on PyPI
libcuml-cu12GPU-accelerated machine learning algorithms…
permissive · top 15,000 on PyPI