mendeleev
Pythonic periodic table of elements
What it is and what it does
Mendeleev is a Python library that wraps periodic table data into an object-oriented API, letting you access element properties by symbol or atomic number. It stores data on basic properties (atomic weight, electron configuration, block), size-related measurements (atomic radius, covalent radius, van der Waals radius in multiple scales), electronegativity scales (Pauling, Allen, and others), physical properties (melting point, boiling point, density, ionization energies), and isotope-specific information (mass, half-life, abundance). Since version 1.2.0, it integrates with pint to attach physical units to properties, enabling unit-aware calculations.
The package is designed for chemists, physicists, and educators who need programmatic access to element data. It supports bulk data access via pandas integration and includes a command-line interface. The underlying data is maintained separately in the mendeleev-data repository and available in multiple formats (CSV, JSON, SQL, HTML, Markdown), so you can also work with raw data directly if needed.
Use it for:
- Retrieve atomic properties (mass, electron configuration, oxidation states) for elements in a chemistry simulation or calculation
- Build periodic table visualizations showing trends in properties like electronegativity or atomic radius across groups and periods
- Look up isotope data (half-life, abundance, mass number) for nuclear physics or radiochemistry research
- Perform unit-aware calculations on physical properties using pint integration to convert between measurement systems
- Export element and isotope data to pandas DataFrames for statistical analysis or machine learning workflows
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a Python API to query properties of chemical elements, ions, and isotopes from the periodic table, with support for physical units via pint and data export to pandas.
Yes. The package is actively maintained, has no known vulnerabilities, uses a permissive MIT license, and installs with low friction. It fills a genuine need for programmatic periodic table access in Python and is well-suited for chemistry, physics, and education use cases. The recent addition of pint integration for units support makes it more useful for scientific calculations.
Install
mendeleev on PyPI
pip
pip install mendeleevuv
uv add mendeleevpoetry
poetry add mendeleevInstalling mendeleev
Before you install
Low friction install with a pure-Python wheel. Actively maintained as of late July 2026, with recent release and 297 repository stars. Ten runtime dependencies including pandas, SQLAlchemy, and pint add some weight but are all standard scientific packages.
License in practice
MIT license (permissive) places no restrictions on use, modification, or distribution for commercial or private projects.
Quickstart
pip install mendeleev
from mendeleev import Fe
print(Fe.name) # 'Iron'
print(Fe.atomic_number) # 26
Verify before relying
- Whether visualization functionality through bokeh mentioned in description is available in current version or requires separate installation
- Performance characteristics when querying large numbers of elements or isotopes
- Completeness and accuracy of isotope data relative to NIST or other authoritative sources
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (<3.15,>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 10 — Pygments, SQLAlchemy, colorama, deprecated, numpy, pandas, pint, pydantic, pydantic-core, pyfiglet |
| Maintenance | actively maintained — 19 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 231,364/month — #9,088 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: mendeleev-1.2.0-py3-none-any.whl
Keywords: periodic table, chemistry, elements, science
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
periodictableProvides a periodic table of the elements with…
permissive · top 15,000 on PyPI
chemicalsRetrieves and calculates chemical properties…
permissive · top 15,000 on PyPI
xraydbXrayDB provides a Python interface to a SQLite…
permissive · top 15,000 on PyPI
janafSearches and parses NIST-JANAF thermochemical…
permissive · top 15,000 on PyPI
PintPint defines, operates on, and converts between…
permissive · top 5,000 on PyPI
particleProvides a pythonic interface to Particle Data…
permissive · top 15,000 on PyPI
hepunitsProvides units and physical constants in the…
permissive · top 15,000 on PyPI
Pint-PandasPint-Pandas adds physical unit support to…
permissive · top 15,000 on PyPI
aseASE provides Python tools for setting up,…
copyleft · top 5,000 on PyPI
PubChemPyPubChemPy is a Python wrapper around the…
permissive · top 5,000 on PyPI