Bulk data access¶
This tutorial explains how to retrieve full tables from the database into pandas DataFrames.
Available tables in mendeleev
¶
elements: The main table with element properties
groups: Metadata about periodic table groups
ionicradii: Ionic radii data
ionizationenergies: Ionization energies
isotopes: Isotopes and their properties
isotopedecaymodes: Data on isotope decay modes
oxidationstates: Oxidation states for elements
phasetransitions: Phase transition data for elements
propertymetadata: Metadata about properties from all tables
scattering_factors: Atomic scattering factors
screeningconstants: Nuclear screening constants
series: Metadata about periodic table series
All data is stored in a sqlite database that is shipped together with the package. You can interact directly with the database if you need more flexibility but for convenience mendeleev
provides a few functions in the fetch
module to retrieve data.
Fetching computed properties in bulk¶
Electronegativities A collection of electronegativity scales computed based on other properties.
To fetch whole tables you can use fetch_table
. The function can be imported from mendeleev.fetch
[1]:
from mendeleev.fetch import fetch_table
To retrieve a table call the fetch_table
with the table name as argument. Here we’ll get probably the most important table elements
with basis data on each element
elements¶
[2]:
ptable = fetch_table("elements")
Now we can use pandas’ capabilities to work with the data.
[3]:
ptable.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 118 entries, 0 to 117
Data columns (total 72 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 annotation 118 non-null object
1 atomic_number 118 non-null int64
2 atomic_radius 90 non-null float64
3 atomic_volume 91 non-null float64
4 block 118 non-null object
5 density 118 non-null float64
6 description 109 non-null object
7 dipole_polarizability 117 non-null float64
8 electron_affinity 77 non-null float64
9 electronic_configuration 118 non-null object
10 evaporation_heat 88 non-null float64
11 fusion_heat 75 non-null float64
12 group_id 90 non-null float64
13 lattice_constant 87 non-null float64
14 lattice_structure 91 non-null object
15 name 118 non-null object
16 period 118 non-null int64
17 series_id 118 non-null int64
18 specific_heat_capacity 85 non-null float64
19 symbol 118 non-null object
20 thermal_conductivity 66 non-null float64
21 vdw_radius 103 non-null float64
22 covalent_radius_cordero 96 non-null float64
23 covalent_radius_pyykko 118 non-null float64
24 en_pauling 85 non-null float64
25 en_allen 71 non-null float64
26 jmol_color 109 non-null object
27 cpk_color 103 non-null object
28 proton_affinity 32 non-null float64
29 gas_basicity 32 non-null float64
30 heat_of_formation 89 non-null float64
31 c6 43 non-null float64
32 covalent_radius_bragg 37 non-null float64
33 vdw_radius_bondi 28 non-null float64
34 vdw_radius_truhlar 16 non-null float64
35 vdw_radius_rt 9 non-null float64
36 vdw_radius_batsanov 65 non-null float64
37 vdw_radius_dreiding 21 non-null float64
38 vdw_radius_uff 103 non-null float64
39 vdw_radius_mm3 94 non-null float64
40 abundance_crust 88 non-null float64
41 abundance_sea 81 non-null float64
42 molcas_gv_color 103 non-null object
43 en_ghosh 103 non-null float64
44 vdw_radius_alvarez 94 non-null float64
45 c6_gb 86 non-null float64
46 atomic_weight 118 non-null float64
47 atomic_weight_uncertainty 74 non-null float64
48 is_monoisotopic 21 non-null float64
49 is_radioactive 118 non-null int64
50 cas 118 non-null object
51 atomic_radius_rahm 96 non-null float64
52 geochemical_class 76 non-null object
53 goldschmidt_class 118 non-null object
54 metallic_radius 56 non-null float64
55 metallic_radius_c12 63 non-null float64
56 covalent_radius_pyykko_double 108 non-null float64
57 covalent_radius_pyykko_triple 80 non-null float64
58 discoverers 118 non-null object
59 discovery_year 105 non-null float64
60 discovery_location 105 non-null object
61 name_origin 118 non-null object
62 sources 118 non-null object
63 uses 112 non-null object
64 mendeleev_number 118 non-null int64
65 dipole_polarizability_unc 117 non-null float64
66 pettifor_number 103 non-null float64
67 glawe_number 103 non-null float64
68 molar_heat_capacity 85 non-null float64
69 en_miedema 73 non-null float64
70 miedema_molar_volume 73 non-null float64
71 miedema_electron_density 73 non-null float64
dtypes: float64(49), int64(5), object(18)
memory usage: 66.5+ KB
For clarity let’s take only a subset of columns
[4]:
cols = [
"atomic_number",
"symbol",
"atomic_radius",
"en_pauling",
"block",
"vdw_radius_mm3",
]
[5]:
ptable[cols].head()
[5]:
atomic_number | symbol | atomic_radius | en_pauling | block | vdw_radius_mm3 | |
---|---|---|---|---|---|---|
0 | 1 | H | 25.0 | 2.20 | s | 162.0 |
1 | 2 | He | 120.0 | NaN | s | 153.0 |
2 | 3 | Li | 145.0 | 0.98 | s | 255.0 |
3 | 4 | Be | 105.0 | 1.57 | s | 223.0 |
4 | 5 | B | 85.0 | 2.04 | p | 215.0 |
It is quite easy now to get descriptive statistics on the data.
[6]:
ptable[cols].describe()
[6]:
atomic_number | atomic_radius | en_pauling | vdw_radius_mm3 | |
---|---|---|---|---|
count | 118.000000 | 90.000000 | 85.000000 | 94.000000 |
mean | 59.500000 | 149.844444 | 1.748588 | 248.468085 |
std | 34.207699 | 40.079110 | 0.634442 | 36.017828 |
min | 1.000000 | 25.000000 | 0.700000 | 153.000000 |
25% | 30.250000 | 135.000000 | 1.240000 | 229.000000 |
50% | 59.500000 | 145.000000 | 1.700000 | 244.000000 |
75% | 88.750000 | 178.750000 | 2.160000 | 269.250000 |
max | 118.000000 | 260.000000 | 3.980000 | 364.000000 |
groups¶
Periodic table group metadata.
[7]:
groups = fetch_table("groups")
groups
[7]:
group_id | symbol | name | |
---|---|---|---|
0 | 1 | IA | Alkali metals |
1 | 2 | IIA | Alkaline earths |
2 | 3 | IIIB | |
3 | 4 | IVB | |
4 | 5 | VB | |
5 | 6 | VIB | |
6 | 7 | VIIB | |
7 | 8 | VIIIB | |
8 | 9 | VIIIB | |
9 | 10 | VIIIB | |
10 | 11 | IB | Coinage metals |
11 | 12 | IIB | |
12 | 13 | IIIA | Boron group |
13 | 14 | IVA | Carbon group |
14 | 15 | VA | Pnictogens |
15 | 16 | VIA | Chalcogens |
16 | 17 | VIIA | Halogens |
17 | 18 | VIIIA | Noble gases |
ionicradii¶
The function to fetch ionic radii is called fetch_ionic_radii
and can either fetch ionic or crystal radii depending on the radius
argument.
[8]:
from mendeleev.fetch import fetch_ionic_radii
[9]:
irs = fetch_ionic_radii(radius="ionic_radius")
irs.head(10)
[9]:
coordination | I | II | III | IIIPY | IV | IVPY | IVSQ | IX | V | VI | VII | VIII | X | XI | XII | XIV | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
atomic_number | charge | ||||||||||||||||
1 | 1 | -38.0 | -18.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
3 | 1 | NaN | NaN | NaN | NaN | 59.0 | NaN | NaN | NaN | NaN | 76.0 | NaN | 92.0 | NaN | NaN | NaN | NaN |
4 | 2 | NaN | NaN | 16.0 | NaN | 27.0 | NaN | NaN | NaN | NaN | 45.0 | NaN | NaN | NaN | NaN | NaN | NaN |
5 | 3 | NaN | NaN | 1.0 | NaN | 11.0 | NaN | NaN | NaN | NaN | 27.0 | NaN | NaN | NaN | NaN | NaN | NaN |
6 | 4 | NaN | NaN | -8.0 | NaN | 15.0 | NaN | NaN | NaN | NaN | 16.0 | NaN | NaN | NaN | NaN | NaN | NaN |
7 | -3 | NaN | NaN | NaN | NaN | 146.0 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN |
3 | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | NaN | 16.0 | NaN | NaN | NaN | NaN | NaN | NaN | |
5 | NaN | NaN | -10.4 | NaN | NaN | NaN | NaN | NaN | NaN | 13.0 | NaN | NaN | NaN | NaN | NaN | NaN | |
8 | -2 | NaN | 135.0 | 136.0 | NaN | 138.0 | NaN | NaN | NaN | NaN | 140.0 | NaN | 142.0 | NaN | NaN | NaN | NaN |
9 | -1 | NaN | 128.5 | 130.0 | NaN | 131.0 | NaN | NaN | NaN | NaN | 133.0 | NaN | NaN | NaN | NaN | NaN | NaN |
ionizationenergies¶
To fetch ionization energies use fetch_ionization_energies
that takes a degree
(default is degree=1
) argument that can either be a single integer or a list if integers to fetch multiple ionization energies.
[10]:
from mendeleev.fetch import fetch_ionization_energies
[11]:
ies = fetch_ionization_energies(degree=2)
ies.head(10)
[11]:
IE2 | |
---|---|
atomic_number | |
1 | NaN |
2 | 54.417766 |
3 | 75.640097 |
4 | 18.211150 |
5 | 25.154830 |
6 | 24.383143 |
7 | 29.601250 |
8 | 35.121120 |
9 | 34.970810 |
10 | 40.962970 |
To fetch multiple ionization degress at once simply pass a list of degrees:
[12]:
ies_multiple = fetch_ionization_energies(degree=[1, 3, 5])
ies_multiple.head(10)
[12]:
IE1 | IE3 | IE5 | |
---|---|---|---|
atomic_number | |||
1 | 13.598435 | NaN | NaN |
2 | 24.587389 | NaN | NaN |
3 | 5.391715 | 122.454359 | NaN |
4 | 9.322699 | 153.896205 | NaN |
5 | 8.298019 | 37.930590 | 340.226022 |
6 | 11.260288 | 47.887780 | 392.090560 |
7 | 14.534130 | 47.445300 | 97.890100 |
8 | 13.618055 | 54.935540 | 113.899000 |
9 | 17.422820 | 62.707980 | 114.249000 |
10 | 21.564541 | 63.423300 | 126.247000 |
isotopes¶
Let try and retrieve another table, namely isotopes
[13]:
isotopes = fetch_table("isotopes", index_col="id")
[14]:
isotopes.info()
<class 'pandas.core.frame.DataFrame'>
Index: 3557 entries, 1 to 3557
Data columns (total 17 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 atomic_number 3557 non-null int64
1 mass 3557 non-null float64
2 abundance 288 non-null float64
3 mass_number 3557 non-null int64
4 mass_uncertainty 3557 non-null float64
5 is_radioactive 3557 non-null int64
6 half_life 2831 non-null float64
7 half_life_unit 3217 non-null object
8 spin 3372 non-null object
9 g_factor 1738 non-null float64
10 quadrupole_moment 1801 non-null float64
11 parity 3372 non-null object
12 discovery_year 3339 non-null float64
13 g_factor_uncertainty 1738 non-null float64
14 abundance_uncertainty 288 non-null float64
15 half_life_uncertainty 2828 non-null float64
16 quadrupole_moment_uncertainty 1800 non-null float64
dtypes: float64(11), int64(3), object(3)
memory usage: 500.2+ KB
Here’s a few first records from that dataframe
[15]:
isotopes.head(10)
[15]:
atomic_number | mass | abundance | mass_number | mass_uncertainty | is_radioactive | half_life | half_life_unit | spin | g_factor | quadrupole_moment | parity | discovery_year | g_factor_uncertainty | abundance_uncertainty | half_life_uncertainty | quadrupole_moment_uncertainty | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | |||||||||||||||||
1 | 1 | 1.007825 | 99.9855 | 1 | 1.400000e-11 | 0 | NaN | None | 1/2 | 5.585695 | 0.0 | + | 1920.0 | 1.800000e-08 | 0.0078 | NaN | 0.0 |
2 | 1 | 2.014102 | 0.0145 | 2 | 1.500000e-11 | 0 | NaN | None | 1 | 0.857438 | NaN | + | 1932.0 | 5.000000e-09 | 0.0078 | NaN | NaN |
3 | 1 | 3.016049 | NaN | 3 | 8.000000e-11 | 1 | 12.32 | year | 1/2 | 5.957925 | 0.0 | + | 1934.0 | 2.800000e-08 | NaN | 0.02 | 0.0 |
4 | 2 | 3.016029 | 0.0002 | 3 | 6.000000e-11 | 0 | NaN | None | 1/2 | -4.255251 | 0.0 | + | 1934.0 | 6.000000e-08 | 0.0002 | NaN | 0.0 |
5 | 3 | 3.030775 | NaN | 3 | 2.147000e-03 | 1 | NaN | None | 3/2 | NaN | NaN | - | NaN | NaN | NaN | NaN | NaN |
6 | 1 | 4.026432 | NaN | 4 | 1.073540e-04 | 1 | 139.00 | ysec | 2 | NaN | NaN | - | 1981.0 | NaN | NaN | 10.00 | NaN |
7 | 2 | 4.002603 | 99.9998 | 4 | 1.600000e-10 | 0 | NaN | None | 0 | 0.000000 | 0.0 | + | 1908.0 | 0.000000e+00 | 0.0002 | NaN | 0.0 |
8 | 3 | 4.027186 | NaN | 4 | 2.277330e-04 | 1 | 91.00 | ysec | 2 | NaN | NaN | - | 1965.0 | NaN | NaN | 9.00 | NaN |
9 | 1 | 5.035311 | NaN | 5 | 9.602000e-05 | 1 | 86.00 | ysec | 1/2 | NaN | 0.0 | + | 1987.0 | NaN | NaN | 6.00 | 0.0 |
10 | 2 | 5.012057 | NaN | 5 | 2.147000e-05 | 1 | 602.00 | ysec | 3/2 | NaN | NaN | - | 1937.0 | NaN | NaN | 22.00 | NaN |
Merge the elements table with the isotopes¶
We can now perform SQL-like merge operation on two DataFrame
s and produce an outer join
[16]:
import pandas as pd
[17]:
merged = pd.merge(ptable[cols], isotopes, how="outer", on="atomic_number")
now we have the following columns in the merged
DataFrame
[18]:
merged.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3557 entries, 0 to 3556
Data columns (total 22 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 atomic_number 3557 non-null int64
1 symbol 3557 non-null object
2 atomic_radius 3020 non-null float64
3 en_pauling 2899 non-null float64
4 block 3557 non-null object
5 vdw_radius_mm3 3186 non-null float64
6 mass 3557 non-null float64
7 abundance 288 non-null float64
8 mass_number 3557 non-null int64
9 mass_uncertainty 3557 non-null float64
10 is_radioactive 3557 non-null int64
11 half_life 2831 non-null float64
12 half_life_unit 3217 non-null object
13 spin 3372 non-null object
14 g_factor 1738 non-null float64
15 quadrupole_moment 1801 non-null float64
16 parity 3372 non-null object
17 discovery_year 3339 non-null float64
18 g_factor_uncertainty 1738 non-null float64
19 abundance_uncertainty 288 non-null float64
20 half_life_uncertainty 2828 non-null float64
21 quadrupole_moment_uncertainty 1800 non-null float64
dtypes: float64(14), int64(3), object(5)
memory usage: 611.5+ KB
[19]:
merged.head()
[19]:
atomic_number | symbol | atomic_radius | en_pauling | block | vdw_radius_mm3 | mass | abundance | mass_number | mass_uncertainty | ... | half_life_unit | spin | g_factor | quadrupole_moment | parity | discovery_year | g_factor_uncertainty | abundance_uncertainty | half_life_uncertainty | quadrupole_moment_uncertainty | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | H | 25.0 | 2.2 | s | 162.0 | 1.007825 | 99.9855 | 1 | 1.400000e-11 | ... | None | 1/2 | 5.585695 | 0.0 | + | 1920.0 | 1.800000e-08 | 0.0078 | NaN | 0.0 |
1 | 1 | H | 25.0 | 2.2 | s | 162.0 | 2.014102 | 0.0145 | 2 | 1.500000e-11 | ... | None | 1 | 0.857438 | NaN | + | 1932.0 | 5.000000e-09 | 0.0078 | NaN | NaN |
2 | 1 | H | 25.0 | 2.2 | s | 162.0 | 3.016049 | NaN | 3 | 8.000000e-11 | ... | year | 1/2 | 5.957925 | 0.0 | + | 1934.0 | 2.800000e-08 | NaN | 0.02 | 0.0 |
3 | 1 | H | 25.0 | 2.2 | s | 162.0 | 4.026432 | NaN | 4 | 1.073540e-04 | ... | ysec | 2 | NaN | NaN | - | 1981.0 | NaN | NaN | 10.00 | NaN |
4 | 1 | H | 25.0 | 2.2 | s | 162.0 | 5.035311 | NaN | 5 | 9.602000e-05 | ... | ysec | 1/2 | NaN | 0.0 | + | 1987.0 | NaN | NaN | 6.00 | 0.0 |
5 rows × 22 columns
To display all the isotopes of Silicon
[20]:
merged[merged["symbol"] == "Si"]
[20]:
atomic_number | symbol | atomic_radius | en_pauling | block | vdw_radius_mm3 | mass | abundance | mass_number | mass_uncertainty | ... | half_life_unit | spin | g_factor | quadrupole_moment | parity | discovery_year | g_factor_uncertainty | abundance_uncertainty | half_life_uncertainty | quadrupole_moment_uncertainty | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
212 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 22.036114 | NaN | 22 | 5.370000e-04 | ... | msec | 0 | 0.000000 | 0.000 | + | 1987.0 | 0.000000 | NaN | 1.1000 | 0.000 |
213 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 23.025711 | NaN | 23 | 5.370000e-04 | ... | msec | 3/2 | NaN | NaN | + | 1986.0 | NaN | NaN | 0.4000 | NaN |
214 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 24.011535 | NaN | 24 | 2.090400e-05 | ... | msec | 0 | 0.000000 | 0.000 | + | 1979.0 | 0.000000 | NaN | 2.1000 | 0.000 |
215 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 25.004109 | NaN | 25 | 1.073500e-05 | ... | msec | 5/2 | NaN | NaN | + | 1963.0 | NaN | NaN | 1.0000 | NaN |
216 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 25.992334 | NaN | 26 | 1.150000e-07 | ... | sec | 0 | 0.000000 | 0.000 | + | 1960.0 | 0.000000 | NaN | 0.0007 | 0.000 |
217 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 26.986705 | NaN | 27 | 1.150000e-07 | ... | sec | 5/2 | 0.346080 | 0.063 | + | 1939.0 | 0.000120 | NaN | 0.0140 | 0.014 |
218 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 27.976927 | 92.2545 | 28 | 5.500000e-10 | ... | None | 0 | 0.000000 | 0.000 | + | 1920.0 | 0.000000 | 0.0037 | NaN | 0.000 |
219 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 28.976495 | 4.6720 | 29 | 6.000000e-10 | ... | None | 1/2 | -1.110104 | 0.000 | + | 1920.0 | 0.000006 | 0.0160 | NaN | 0.000 |
220 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 29.973770 | 3.0735 | 30 | 2.300000e-08 | ... | None | 0 | 0.000000 | 0.000 | + | 1924.0 | 0.000000 | 0.0021 | NaN | 0.000 |
221 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 30.975363 | NaN | 31 | 4.600000e-08 | ... | minute | 3/2 | NaN | NaN | + | 1934.0 | NaN | NaN | 0.2000 | NaN |
222 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 31.974152 | NaN | 32 | 3.200000e-07 | ... | year | 0 | 0.000000 | 0.000 | + | 1953.0 | 0.000000 | NaN | 7.0000 | 0.000 |
223 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 32.977977 | NaN | 33 | 7.500000e-07 | ... | sec | 3/2 | NaN | NaN | + | 1971.0 | NaN | NaN | 0.1800 | NaN |
224 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 33.978538 | NaN | 34 | 8.600000e-07 | ... | sec | 0 | 0.000000 | 0.000 | + | 1971.0 | 0.000000 | NaN | 0.2000 | 0.000 |
225 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 34.984550 | NaN | 35 | 3.849400e-05 | ... | msec | 7/2 | 0.468286 | NaN | - | 1971.0 | 0.001143 | NaN | 120.0000 | NaN |
226 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 35.986649 | NaN | 36 | 7.707700e-05 | ... | msec | 0 | 0.000000 | 0.000 | + | 1971.0 | 0.000000 | NaN | 2.0000 | 0.000 |
227 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 36.992945 | NaN | 37 | 1.221790e-04 | ... | msec | 5/2 | NaN | NaN | - | 1979.0 | NaN | NaN | 3.5000 | NaN |
228 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 37.995523 | NaN | 38 | 1.125000e-04 | ... | msec | 0 | 0.000000 | 0.000 | + | 1979.0 | 0.000000 | NaN | 8.0000 | 0.000 |
229 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 39.002491 | NaN | 39 | 1.455000e-04 | ... | msec | 5/2 | NaN | NaN | - | 1979.0 | NaN | NaN | 4.1000 | NaN |
230 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 40.006084 | NaN | 40 | 1.309620e-04 | ... | msec | 0 | 0.000000 | 0.000 | + | 1989.0 | 0.000000 | NaN | 2.6000 | 0.000 |
231 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 41.014171 | NaN | 41 | 3.220000e-04 | ... | msec | 7/2 | NaN | NaN | - | 1989.0 | NaN | NaN | 2.5000 | NaN |
232 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 42.018078 | NaN | 42 | 3.220000e-04 | ... | msec | 0 | 0.000000 | 0.000 | + | 1990.0 | 0.000000 | NaN | 3.5000 | 0.000 |
233 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 43.026119 | NaN | 43 | 4.290000e-04 | ... | msec | 3/2 | NaN | NaN | - | 2002.0 | NaN | NaN | NaN | NaN |
234 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 44.031466 | NaN | 44 | 5.370000e-04 | ... | msec | 0 | 0.000000 | 0.000 | + | 2007.0 | 0.000000 | NaN | NaN | 0.000 |
235 | 14 | Si | 110.0 | 1.9 | p | 229.0 | 45.039818 | NaN | 45 | 6.440000e-04 | ... | msec | 3/2 | NaN | NaN | - | NaN | NaN | NaN | NaN | NaN |
24 rows × 22 columns
isotopedecaymodes¶
Different modes are explained in the documentation
[21]:
idm = fetch_table("isotopedecaymodes")
idm
[21]:
id | isotope_id | mode | relation | intensity | is_allowed_not_observed | is_observed_intensity_unknown | |
---|---|---|---|---|---|---|---|
0 | 1 | 3 | B- | = | 100.0 | NaN | NaN |
1 | 2 | 5 | p | NaN | 1.0 | NaN | |
2 | 3 | 6 | n | = | 100.0 | NaN | NaN |
3 | 4 | 8 | p | = | 100.0 | NaN | NaN |
4 | 5 | 9 | 2n | = | 100.0 | NaN | NaN |
... | ... | ... | ... | ... | ... | ... | ... |
5778 | 5779 | 3554 | A | NaN | 1.0 | NaN | |
5779 | 5780 | 3555 | A | = | 100.0 | NaN | NaN |
5780 | 5781 | 3556 | A | ~ | 100.0 | NaN | NaN |
5781 | 5782 | 3556 | SF | NaN | 1.0 | NaN | |
5782 | 5783 | 3557 | A | ~ | 100.0 | NaN | NaN |
5783 rows × 7 columns
oxidationstates¶
[22]:
ox = fetch_table("oxidationstates")
ox
[22]:
id | atomic_number | oxidation_state | category | |
---|---|---|---|---|
0 | 1 | 1 | 1 | main |
1 | 2 | 1 | -1 | main |
2 | 3 | 3 | 1 | main |
3 | 4 | 4 | 0 | extended |
4 | 5 | 4 | 2 | main |
... | ... | ... | ... | ... |
596 | 597 | 118 | 4 | extended |
597 | 598 | 118 | 6 | extended |
598 | 599 | 118 | -1 | extended |
599 | 600 | 118 | 1 | extended |
600 | 601 | 118 | 2 | extended |
601 rows × 4 columns
phasetransitions¶
For most elements a single row is present with phase transition properies, however for elements with multiple allotropes (i.e. Carbon, Phosphorus, Selenium, Sulfur, Tin) values are provided for each allotrope.
[23]:
pt = fetch_table("phasetransitions")
pt.sort_values(by="atomic_number").head(15)
[23]:
id | atomic_number | boiling_point | melting_point | critical_temperature | critical_pressure | triple_point_temperature | triple_point_pressure | allotrope | |
---|---|---|---|---|---|---|---|---|---|
39 | 40 | 1 | 20.271 | 13.990 | 32.938 | 1.28580 | 13.8033 | 7.0410 | None |
37 | 38 | 2 | 4.222 | NaN | 5.195 | 0.22746 | 2.1770 | 5.0430 | None |
48 | 49 | 3 | 1615.150 | 453.650 | 3223.150 | 67.00000 | NaN | NaN | None |
9 | 10 | 4 | 2741.150 | 1560.150 | 5205.150 | NaN | NaN | NaN | None |
11 | 12 | 5 | 4273.150 | 2350.150 | NaN | NaN | NaN | NaN | None |
16 | 17 | 6 | 4098.150 | 4762.150 | NaN | NaN | 4762.1500 | 10300.0000 | graphite |
17 | 18 | 6 | NaN | 4713.150 | NaN | NaN | NaN | NaN | diamond |
60 | 61 | 7 | 77.355 | 63.150 | 126.192 | 3.39580 | 63.1510 | 12.5200 | None |
63 | 64 | 8 | 90.188 | 54.360 | 154.581 | 5.04300 | 54.3584 | 0.1463 | None |
30 | 31 | 9 | 85.040 | 53.480 | 144.410 | 5.17240 | 53.4800 | 90.0000 | None |
56 | 57 | 10 | 27.104 | 24.560 | 44.492 | 2.67860 | 24.5561 | 43.3700 | None |
86 | 87 | 11 | 1156.090 | 370.944 | 2573.150 | 35.00000 | NaN | NaN | None |
50 | 51 | 12 | 1363.150 | 923.150 | NaN | NaN | NaN | NaN | None |
1 | 2 | 13 | 2792.150 | 933.473 | 6700.150 | NaN | NaN | NaN | None |
84 | 85 | 14 | 3538.150 | 1687.150 | NaN | NaN | NaN | NaN | None |
propertymetadata¶
This table holds a lot of the metadata that is used to render the data documentation page. Probably the most useful piece of information here is the unit assocaited with a given property. The units are compatible with the pint package so properties might be used direclty with units.
[24]:
metadata = fetch_table("propertymetadata")
metadata.head(10)
[24]:
id | table_name | column_name | class_name | attribute_name | category | value_origin | description | unit | annotations | citation_keys | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | elements | abundance_crust | Element | abundance_crust | abundance | STORED | Abundance in the Earth's crust | mg/kg | None | haynes2014crc |
1 | 2 | elements | abundance_sea | Element | abundance_sea | abundance | STORED | Abundance in the seas | mg/L | None | haynes2014crc |
2 | 3 | elements | atomic_number | Element | atomic_number | basic properties | STORED | Atomic number | None | None | None |
3 | 4 | elements | atomic_radius | Element | atomic_radius | atomic size properties | STORED | Atomic radius | pm | None | Slater1964 |
4 | 5 | elements | atomic_radius_rahm | Element | atomic_radius_rahm | atomic size properties | STORED | Atomic radius by Rahm et al. | pm | None | Rahm2016,Rahm2017 |
5 | 6 | elements | atomic_volume | Element | atomic_volume | atomic size properties | STORED | Atomic volume | cm^3/mol | None | None |
6 | 7 | elements | atomic_weight | Element | atomic_weight | basic properties | STORED | Relative atomic weight | Da | Atomic weights and their uncertainties were re... | Meija2016,iupac-weights |
7 | 8 | elements | atomic_weight_uncertainty | Element | atomic_weight_uncertainty | basic properties | STORED | Atomic weight uncertainty | Da | None | Meija2016,iupac-weights |
8 | 9 | elements | block | Element | block | periodic table properties | STORED | Block in periodic table | None | None | None |
9 | 10 | elements | c6 | Element | c6 | electric and optical properties | STORED | C_6 dispersion coefficient | hartree/bohr^6 | None | Chu2004,Tang1976 |
scattering_factors¶
[25]:
scattering_factors = fetch_table("scattering_factors")
scattering_factors.head(10)
[25]:
id | atomic_number | energy | f1 | f2 | |
---|---|---|---|---|---|
0 | 1 | 10 | 10.0000 | -9999.0 | 4.795760e-16 |
1 | 2 | 10 | 10.1617 | -9999.0 | 4.873330e-16 |
2 | 3 | 10 | 10.3261 | -9999.0 | 4.952150e-16 |
3 | 4 | 10 | 10.4931 | -9999.0 | 5.032250e-16 |
4 | 5 | 10 | 10.6628 | -9999.0 | 5.113640e-16 |
5 | 6 | 10 | 10.8353 | -9999.0 | 5.196350e-16 |
6 | 7 | 10 | 11.0106 | -9999.0 | 5.280400e-16 |
7 | 8 | 10 | 11.1886 | -9999.0 | 5.365800e-16 |
8 | 9 | 10 | 11.3696 | -9999.0 | 5.452590e-16 |
9 | 10 | 10 | 11.5535 | -9999.0 | 5.540780e-16 |
screeningconstants¶
[26]:
screening = fetch_table("screeningconstants")
screening.head(10)
[26]:
id | atomic_number | n | s | screening | |
---|---|---|---|---|---|
0 | 1 | 1 | 1 | s | 0.0000 |
1 | 2 | 2 | 1 | s | 0.3125 |
2 | 3 | 3 | 1 | s | 0.3094 |
3 | 4 | 3 | 2 | s | 1.7208 |
4 | 5 | 4 | 1 | s | 0.3152 |
5 | 6 | 4 | 2 | s | 2.0880 |
6 | 7 | 5 | 1 | s | 0.3205 |
7 | 8 | 5 | 2 | p | 2.5786 |
8 | 9 | 5 | 2 | s | 2.4238 |
9 | 10 | 6 | 1 | s | 0.3273 |
series¶
Metadata about periodic table series.
[27]:
series = fetch_table("series")
series
[27]:
id | name | color | |
---|---|---|---|
0 | 1 | Nonmetals | #baa2a6 |
1 | 2 | Noble gases | #bbbb88 |
2 | 3 | Alkali metals | #a6cee3 |
3 | 4 | Alkaline earth metals | #1f78b4 |
4 | 5 | Metalloids | #33a02c |
5 | 6 | Halogens | #fdbf6f |
6 | 7 | Poor metals | #b2df8a |
7 | 8 | Transition metals | #e08e79 |
8 | 9 | Lanthanides | #cab2d6 |
9 | 10 | Actinides | #6a3d9a |
Electronegativities¶
To fetch all data from electronegatuivity scales use fetch_electronegativities
. This can take a few seconds since most of the values need to be computed.
[28]:
from mendeleev.fetch import fetch_electronegativities
[29]:
ens = fetch_electronegativities()
ens.head(10)
[29]:
symbol | radius | Pauling | Allen | Ghosh | Miedema | zeff | Allred-Rochow | Cottrell-Sutton | Gordy | Li-Xue | Martynov-Batsanov | Mulliken | Nagle | Sanderson | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
atomic_number | |||||||||||||||
1 | H | 32.0 | 2.20 | 13.610 | 0.263800 | 5.20 | 1.00 | 0.000977 | 0.176777 | 0.031250 | {('I', ''): -3.5407218307179495, ('II', ''): -... | 3.687606 | 7.176315 | 0.605388 | 2.187771 |
2 | He | 46.0 | NaN | 24.590 | 0.442712 | NaN | 1.70 | 0.000803 | 0.192241 | 0.036957 | {} | 6.285108 | 2.443695 | 1.130639 | 1.000000 |
3 | Li | 133.0 | 0.98 | 5.392 | 0.105093 | 2.85 | 1.30 | 0.000073 | 0.098866 | 0.009774 | {('IV', ''): 1.7160634688527356, ('VI', ''): 1... | 2.322007 | 3.004882 | 0.182650 | 0.048868 |
4 | Be | 102.0 | 1.57 | 9.323 | 0.144986 | 5.05 | 1.95 | 0.000187 | 0.138267 | 0.019118 | {} | 3.710381 | 3.461349 | 0.375615 | 0.126847 |
5 | B | 85.0 | 2.04 | 12.130 | 0.184886 | 5.30 | 2.60 | 0.000360 | 0.174895 | 0.030588 | {} | 4.877959 | 4.288871 | 0.526974 | 0.254627 |
6 | C | 75.0 | 2.55 | 15.050 | 0.224776 | 6.24 | 3.25 | 0.000578 | 0.208167 | 0.043333 | {} | 6.083271 | 6.261203 | 0.707393 | 0.427525 |
7 | N | 71.0 | 3.04 | 18.130 | 0.264930 | 6.86 | 3.90 | 0.000774 | 0.234371 | 0.054930 | {} | 7.306768 | 6.567065 | 0.877498 | 0.577482 |
8 | O | 63.0 | 3.44 | 21.360 | 0.304575 | NaN | 4.55 | 0.001146 | 0.268742 | 0.072222 | {} | 8.496138 | 7.539584 | 1.042218 | 0.941649 |
9 | F | 64.0 | 3.98 | 24.800 | 0.344443 | NaN | 5.20 | 0.001270 | 0.285044 | 0.081250 | {} | 9.701808 | 10.412005 | 1.232373 | 1.017681 |
10 | Ne | 67.0 | NaN | 28.310 | 0.384390 | NaN | 5.85 | 0.001303 | 0.295488 | 0.087313 | {} | 10.918389 | 10.782270 | 1.443255 | 1.000000 |
Version information¶
[30]:
import mendeleev
print(f"{mendeleev.__version__=}")
mendeleev.__version__='0.19.0'