SkillAgentSearch skills...

Mendeleev

A python package for accessing various properties of elements, ions and isotopes in the periodic table of elements.

Install / Use

/learn @lmmentel/Mendeleev

README

Documentation Status Latest version released on PyPI MIT license image Python package image DOI Contributor Covenant

<!-- PROJECT LOGO --> <br /> <p align="center"> <a href="https://github.com/lmmentel/mendeleev"> <img src="docs/source/_static/img/name_and_logo.png" alt="Logo" width="300"> </a> <h3 align="center">Pythonic periodic table of elements</h3> <p align="center"> A package with a convenient python API for accessing various properties of elements, ions and isotopes in the periodic table of elements. <br /> <br /> <a href="https://github.com/lmmentel/mendeleev/issues">Report Bug</a> · <a href="https://github.com/lmmentel/mendeleev/issues">Request Feature</a> · <a href="https://github.com/lmmentel/mendeleev/pulls">Submit a Pull Request</a> </p> </p>

[!TIP] If you're looking for raw data behind mendeleev have a look at mendeleev-data repo.

You can find all data assets in multiple formats:

  • csv,
  • html,
  • json,
  • sql,
  • markdown.

All releases a tagged with the same version numbers as mendeeleev.

<!-- TABLE OF CONTENTS -->

Table of Contents


source: https://github.com/lmmentel/mendeleev


About the project

This package provides a convenient python API for accessing various properties of elements, ions and isotopes in the periodic table of elements.

Moreover it provides an easy to use interface to pandas and convenient visualization functionality through bokeh that enables you to create customized periodic tables displaying various properties.

peridic_table Django Extensions is free and always will be. It is development and maintained by developers in an Open Source manner. Any support is welcome. You could help by writing documentation, pull-requests, report issues and/or translations. iodic trends in the periodic tables. If you want to look at some examples there are a few tutorials available as jupyter notebooks.

Interactive web app

If you would like to explore the data available in mendeleev check out the interactive web app at mendeleev.herokuapp.com where you can create your own periodic tables and visualize the relations between various properties of elements.

Periodic table view

Correlations view

Installation

The preferred installation method is with conda and you can install the package from the conda-forge Anaconda channel channel by

conda install conda-forge::mendeleev

The package can also be installed using pip

pip install mendeleev

or pipenv

pipenv install mendeleev

You can also install the most recent version from the repository:

pip install git+https://github.com/lmmentel/mendeleev.git

Documentation

Full documentation is hosted on Read the Docs.

There are also tutorials available as Jupyter notebooks on binder where you can explore the examples interactively:

Data

A comprehensive list of the available data together with appropriate references are available in the documentation. Here the most important entries are listed:

Basic properties

  • atomic number
  • atomic volume
  • atomic weight
  • block
  • cas
  • electrons
  • electronic configuration
  • group
  • name
  • neutrons
  • mass number
  • period
  • protons
  • series
  • symbol

Standardized colors schemes

  • cpk_color
  • jmol_color
  • molcas_gv_color

Size related properties

  • atomic radius (Slater, Rahm)
  • covalent radius (Bragg, Cordero, Pyykko)
  • ionic radius
  • metallic radius
  • van der Waals radius (Alvarez, Batsanov, Bondi, Dreiding, MM3, RT, Truhlar, UFF)

Electronegativity scales

  • Allen
  • Allred & Rochow
  • Cottrell & Sutton
  • Ghosh
  • Gordy
  • Gunnarsson-Lundqvist
  • Li & Xue
  • Nagle
  • Martynov & Batsanov
  • Miedema
  • Mulliken
  • Pauling
  • Robles-Bartolotti
  • Sanderson

Descriptive properties

  • discoverers
  • discovery location
  • discovery year
  • dipole year
  • description
  • name origin
  • sources
  • uses

Physical properties

  • boiling point
  • C<sub>6</sub>
  • critical temperature
  • critical pressure
  • density
  • dipole polarizability
  • electron affinity
  • evaporation heat
  • fusion heat
  • gas basicity
  • heat of formation
  • ionization energies
  • lattice constant
  • lattice structure
  • melting point
  • oxidation states
  • proton affinity
  • specific heat capacity
  • thermal conductivity
  • triple point temperature
  • triple point pressure

Computed properties

  • hardness
  • softness
  • electrophilicity

Other properties

  • abundance in the Earth's crust
  • abundance in the sea
  • geochemical class
  • Glawe number
  • Goldschmidt class
  • InChI
  • is monoisotopic
  • is radioactive
  • isotopes
  • Mendeleev number
  • NIST WebBook URL
  • nuclear screening constants (Slater & Clementi)

Isotope properties

  • abundance
  • abundance uncertainty
  • discovery year
  • g-factor
  • g-factor uncertainty
  • half life
  • half life uncertainty
  • radioactivity
  • mass
  • mass number
  • parity
  • quadrupole moment
  • quadrupole moment uncertainty
  • spin

Getting started

The simplest way of accessing the element data is by importing elements directly from the [mendeleev]{.title-ref} package by their symbols. For example consider iron (Fe):

>>> from mendeleev import Fe
>>> Fe.name
'Iron'
>>> Fe.atomic_number
26
>>> Fe.thermal_conductivity
80.4

Another, more flexible way is through the element method that returns the Element object:

>>> from mendeleev import element

The element method accepts unique identifiers: atomic number, atomic symbol or element's name in English. To retrieve the entries on Silicon by symbol type

>>> si = element('Si')
>>> si.name
'Silicon'

Similarly to access the data by atomic number or element names type

>>> al = element(13)
>>> al.name
'Aluminium'
>>> o = element('Oxygen')
>>> o.atomic_number
8

Lists of elements

The element method also accepts list or tuple of identifiers and then returns a list of Element objects

>>> c, h, o = element(['C', 'Hydrogen', 8])
>>> c.name, h.name, o.name
('Carbon', 'Hydrogen', 'Oxygen')

Isotopes

The isotopes attribute returns a list of Isotope objects with the following attributes per isotope

  • atomic_number
  • mass
  • abundance
  • mass_number
>>> fe = element('Fe')
>>> for

Related Skills

View on GitHub
GitHub Stars282
CategoryDevelopment
Updated9d ago
Forks50

Languages

Python

Security Score

100/100

Audited on Mar 24, 2026

No findings