Bulk data access

This tutorial explains how to retrieve full tables from the database into pandas DataFrames.

Available tables in mendeleev

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

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 DataFrames 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'