Sorry for the FAQ, but I really don't know where to find a full spreadsheet for element properties. I mean a table that has one row for each element, and the columns are its properties, such as name, atomic number, density, melting point, etc. I know that there are many sites or references for that, but I need it in tabular format, because I want to analyze data, make charts, etc.
-
5$\begingroup$ Something like this? $\endgroup$– Aditya SriramCommented Dec 19, 2012 at 9:39
-
1$\begingroup$ Or if someone knows programming, they can web-scrape source code of this website.(Don't know if it is legal) $\endgroup$– Aditya SriramCommented Dec 19, 2012 at 11:19
-
$\begingroup$ Yes, @AdityaSriram, That's exactly what I wanted $\endgroup$– Mostafa FarzánCommented Dec 19, 2012 at 12:57
-
2$\begingroup$ just visit "images-of-elements.com/element-properties.php" and "select all" and copy to excel $\endgroup$– user1770Commented Jun 8, 2013 at 8:23
5 Answers
Well, here's a CSV file that I parsed out of the JSON data provided by Paul Nathan's website, which in turn was produced from gPeriodic data in response to this question. gPeriodic is FOSS, so I can only assume that the element data contained within is good to share, though I have no idea of its provenance.
The parser uses the python json module to read the data, which I then wrote into comma separated values, which should be readable by any halfway competent spreadsheet program.
Here it is: Pastebin Link
save it as elementdata.csv and you're good to go.
Some gotchas:
- This reproduces the gPeriodic data, warts and all. I make no guarantees regarding its correctness, recency, etc. I just munged the data.
- Some of the data is augmented with tildes, notes about temperature/polymorph/state etc. I've left these as they are but you may need to trim them if you want to plot them as numeric values.
- Argon had an atomic radius of '2-', whatever that means. I cut it.
- Excel is joke software and habitually interprets numbers wrapped in parentheses as negatives, because apparently some accountants decided that surrounding numbers in parens is a more sensible option than using a minus sign. Needless to say, this is wrong. I've addressed the problem by wrapping the affected numbers in angle brackets.
- There are no ionic radii in the source data. At all. Not my fault.
- The columns inherit the units of the source data. I've left the units out on purpose because I wanted each column to have no spaces in the name for ease of processing in R or whatever. Furthermore, the units in the source file have some inconvenient characters from an encoding perspective.
Tried plotting Z versus covalent radius in R from this data - looks alright:
Some of the data points are missing, some are not read by R because they are wrapped in <> - pre-process to your heart's content.
-
$\begingroup$ Thanks, man but @AdityaSriram got me the excel file that I had described. Another time, thank you. $\endgroup$ Commented Dec 19, 2012 at 13:00
-
2$\begingroup$ @MostafaFarzán - No offence intended to Aditya, but the data that I link to contains considerable additional information that may be quite interesting to plot. Moreover, as a .csv, it can be opened in excel as well as literally hundreds of other programs on all platforms, making it considerably more portable than an .xls, for which interoperability has always been a low priority for Microsoft. $\endgroup$ Commented Dec 19, 2012 at 14:08
-
$\begingroup$ Sorry, I didn't know that excel can open these files. The file was cool, but like that xls file, needs some works before charting. $\endgroup$ Commented Dec 19, 2012 at 15:24
-
$\begingroup$ "No offence intended to Aditya" -> None taken. $\endgroup$ Commented Dec 22, 2012 at 12:13
-
1$\begingroup$ This data hasn't been updated with the 2016 element names. $\endgroup$– seanCommented Nov 28, 2018 at 9:56
I found a nice json database here (it may have errors, I wouldn't know, but there are links to the original sources).
Best visualised with Chernoff faces IMO,
library(jsonlite)
library(ggplot2)
library(ggChernoff)
# https://github.com/Bowserinator/Periodic-Table-JSON
d <- fromJSON('PeriodicTableJSON.json')[["elements"]]
ggplot(d, aes(xpos,10-ypos)) +
geom_chernoff(aes(fill=category, size = phase, smile = density, brow = molar_heat)) +
geom_text(aes(label=symbol), vjust=2.5) +
guides(fill=guide_legend(ncol=2)) +
theme_void() +
scale_brow_continuous(breaks = c(10, 25, 50))+
theme(legend.position = 'right', panel.background = element_rect(colour="black"))
Fine, here's my data taken from the reference mentioned in my above comment.
I cannot vouch for it's accuracy.
This is in the .csv
file format for its wide use as enlightened by Richard Terrett. You can combine certain ranges from this csv/spreadsheet to the one prepared by Richard, because it contains certain properties not contained in Richard's source.
Also there are certain properties in Richard's file which are absent/improper in mine so this file is best used in conjunction with Richard's file.
-
$\begingroup$ Not bad! I assume this was obtained via scraping the ChemReference site? $\endgroup$ Commented Dec 22, 2012 at 13:07
-
$\begingroup$ Yes from the (chem *cough* refer *cough* ence site). First copied the source HTML, used Python-Beautiful Soup to get just the periodic <table> part then wrote a program to gather data/properties from the <h1>,<h2>,<h3> and <h4> tags into dictionaries finally output the dictionary contents into a csv file. $\endgroup$ Commented Dec 23, 2012 at 4:23
-
$\begingroup$ This data hasn't been updated with the 2016 element names. $\endgroup$– seanCommented Nov 28, 2018 at 9:56
I've collected a lot data on the elements from several sources and built a small python package around it called mendeleev. The data is contained in a SQLite3 database from which you can easily extract csv files of individual tables.
Most of the data if properly referenced so you can trace back its origin.
Moreover since the interface is written in Python you can easily plot and analyze the data if needed.
Here is a Google Sheets spreadsheet with basic data: https://docs.google.com/spreadsheets/d/1vEOwbbl-l805_i2oWSVCFxfmFDstwkuRjkZQfBrTh6k/edit?usp=sharing
Hope this is useful!