{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Not long ago, I needed to parse some HTML tables from our confluence website at work. I first thought: I'm gonna need [requests](http://docs.python-requests.org/en/master/) and [BeautifulSoup](https://www.crummy.com/software/BeautifulSoup/bs4/doc/). As HTML tables are well defined, I did some quick googling to see if there was some recipe or lib to parse them and I found a link to [pandas](https://pandas.pydata.org). What? Can pandas do that too?\n", "\n", "I have been using pandas for quite some time and have used read_csv, read_excel, even read_sql, but I had missed read_html!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Reading excel file with pandas" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Before to look at HTML tables, I want to show a quick example on how to read an excel file with pandas. The API is really nice. If I have to look at some excel data, I go directly to pandas.\n", "\n", "So let's download a sample file file:" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import io\n", "import requests\n", "import pandas as pd\n", "from zipfile import ZipFile" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "r = requests.get('http://www.contextures.com/SampleData.zip')\n", "ZipFile(io.BytesIO(r.content)).extractall()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This created the *SampleData.xlsx* file that includes four sheets: Instructions, SalesOrders, SampleNumbers and MyLinks. Only the *SalesOrders* sheet includes tabular data:\n", "\n", "So let's read it." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "df = pd.read_excel('SampleData.xlsx', sheet_name='SalesOrders')" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | OrderDate | \n", "Region | \n", "Rep | \n", "Item | \n", "Units | \n", "Unit Cost | \n", "Total | \n", "
---|---|---|---|---|---|---|---|
0 | \n", "2016-01-06 | \n", "East | \n", "Jones | \n", "Pencil | \n", "95 | \n", "1.99 | \n", "189.05 | \n", "
1 | \n", "2016-01-23 | \n", "Central | \n", "Kivell | \n", "Binder | \n", "50 | \n", "19.99 | \n", "999.50 | \n", "
2 | \n", "2016-02-09 | \n", "Central | \n", "Jardine | \n", "Pencil | \n", "36 | \n", "4.99 | \n", "179.64 | \n", "
3 | \n", "2016-02-26 | \n", "Central | \n", "Gill | \n", "Pen | \n", "27 | \n", "19.99 | \n", "539.73 | \n", "
4 | \n", "2016-03-15 | \n", "West | \n", "Sorvino | \n", "Pencil | \n", "56 | \n", "2.99 | \n", "167.44 | \n", "
Programming Language | \n", "Creator | \n", "Year | \n", "
---|---|---|
C | \n", "Dennis Ritchie | \n", "1972 | \n", "
Python | \n", "Guido Van Rossum | \n", "1989 | \n", "
Ruby | \n", "Yukihiro Matsumoto | \n", "1995 | \n", "
Programming Language | \n", "Creator | \n", "Year | \n", "
---|---|---|
C | \n", "Dennis Ritchie | \n", "1972 | \n", "
Python | \n", "Guido Van Rossum | \n", "1989 | \n", "
Ruby | \n", "Yukihiro Matsumoto | \n", "1995 | \n", "
\n", " | Programming Language | \n", "Creator | \n", "Year | \n", "
---|---|---|---|
0 | \n", "C | \n", "Dennis Ritchie | \n", "1972 | \n", "
1 | \n", "Python | \n", "Guido Van Rossum | \n", "1989 | \n", "
2 | \n", "Ruby | \n", "Yukihiro Matsumoto | \n", "1995 | \n", "
\n", " | Programming Language | \n", "Creator | \n", "Year | \n", "
---|---|---|---|
1 | \n", "Python | \n", "Guido Van Rossum | \n", "1989 | \n", "
2 | \n", "Ruby | \n", "Yukihiro Matsumoto | \n", "1995 | \n", "
Programming Language | \n", "Creator | \n", "Year | \n", "
---|---|---|
C | \n", "Dennis Ritchie | \n", "1972 | \n", "
Python | \n", "Guido Van Rossum | \n", "1989 | \n", "
Ruby | \n", "Yukihiro Matsumoto | \n", "1995 | \n", "
\n", " | 0 | \n", "1 | \n", "2 | \n", "
---|---|---|---|
0 | \n", "Programming Language | \n", "Creator | \n", "Year | \n", "
1 | \n", "C | \n", "Dennis Ritchie | \n", "1972 | \n", "
2 | \n", "Python | \n", "Guido Van Rossum | \n", "1989 | \n", "
3 | \n", "Ruby | \n", "Yukihiro Matsumoto | \n", "1995 | \n", "
\n", " | Programming Language | \n", "Creator | \n", "Year | \n", "
---|---|---|---|
0 | \n", "C | \n", "Dennis Ritchie | \n", "1972 | \n", "
1 | \n", "Python | \n", "Guido Van Rossum | \n", "1989 | \n", "
2 | \n", "Ruby | \n", "Yukihiro Matsumoto | \n", "1995 | \n", "
\n", " | OrderDate | \n", "Region | \n", "Rep | \n", "Item | \n", "Units | \n", "UnitCost | \n", "Total | \n", "
---|---|---|---|---|---|---|---|
0 | \n", "1/6/2016 | \n", "East | \n", "Jones | \n", "Pencil | \n", "95 | \n", "1.99 | \n", "189.05 | \n", "
1 | \n", "1/23/2016 | \n", "Central | \n", "Kivell | \n", "Binder | \n", "50 | \n", "19.99 | \n", "999.50 | \n", "
2 | \n", "2/9/2016 | \n", "Central | \n", "Jardine | \n", "Pencil | \n", "36 | \n", "4.99 | \n", "179.64 | \n", "
3 | \n", "2/26/2016 | \n", "Central | \n", "Gill | \n", "Pen | \n", "27 | \n", "19.99 | \n", "539.73 | \n", "
4 | \n", "3/15/2016 | \n", "West | \n", "Sorvino | \n", "Pencil | \n", "56 | \n", "2.99 | \n", "167.44 | \n", "
\n", " | Type | \n", "mutable | \n", "Description | \n", "Syntax example | \n", "
---|---|---|---|---|
0 | \n", "bool | \n", "immutable | \n", "Boolean value | \n", "True False | \n", "
1 | \n", "bytearray | \n", "mutable | \n", "Sequence of bytes | \n", "bytearray(b'Some ASCII') bytearray(b\"Some ASCI... | \n", "
2 | \n", "bytes | \n", "immutable | \n", "Sequence of bytes | \n", "b'Some ASCII' b\"Some ASCII\" bytes([119, 105, 1... | \n", "
3 | \n", "complex | \n", "immutable | \n", "Complex number with real and imaginary parts | \n", "3+2.7j | \n", "
4 | \n", "dict | \n", "mutable | \n", "Associative array (or dictionary) of key and v... | \n", "{'key1': 1.0, 3: False} | \n", "
5 | \n", "ellipsis | \n", "NaN | \n", "An ellipsis placeholder to be used as an index... | \n", "... | \n", "
6 | \n", "float | \n", "immutable | \n", "Floating point number, system-defined precision | \n", "3.1415927 | \n", "
7 | \n", "frozenset | \n", "immutable | \n", "Unordered set, contains no duplicates; can con... | \n", "frozenset([4.0, 'string', True]) | \n", "
8 | \n", "int | \n", "immutable | \n", "Integer of unlimited magnitude[76] | \n", "42 | \n", "
9 | \n", "list | \n", "mutable | \n", "List, can contain mixed types | \n", "[4.0, 'string', True] | \n", "
10 | \n", "set | \n", "mutable | \n", "Unordered set, contains no duplicates; can con... | \n", "{4.0, 'string', True} | \n", "
11 | \n", "str | \n", "immutable | \n", "A character string: sequence of Unicode codepo... | \n", "'Wikipedia' \"Wikipedia\" \"\"\"Spanning multiple l... | \n", "
12 | \n", "tuple | \n", "immutable | \n", "Can contain mixed types | \n", "(4.0, 'string', True)But we can append element... | \n", "
\n", " | Type | \n", "mutable | \n", "Description | \n", "Syntax example | \n", "
---|---|---|---|---|
0 | \n", "bool | \n", "immutable | \n", "Boolean value | \n", "True False | \n", "
1 | \n", "bytearray | \n", "mutable | \n", "Sequence of bytes | \n", "bytearray(b'Some ASCII') bytearray(b\"Some ASCI... | \n", "
2 | \n", "bytes | \n", "immutable | \n", "Sequence of bytes | \n", "b'Some ASCII' b\"Some ASCII\" bytes([119, 105, 1... | \n", "
3 | \n", "complex | \n", "immutable | \n", "Complex number with real and imaginary parts | \n", "3+2.7j | \n", "
4 | \n", "dict | \n", "mutable | \n", "Associative array (or dictionary) of key and v... | \n", "{'key1': 1.0, 3: False} | \n", "
5 | \n", "ellipsis | \n", "NaN | \n", "An ellipsis placeholder to be used as an index... | \n", "... | \n", "
6 | \n", "float | \n", "immutable | \n", "Floating point number, system-defined precision | \n", "3.1415927 | \n", "
7 | \n", "frozenset | \n", "immutable | \n", "Unordered set, contains no duplicates; can con... | \n", "frozenset([4.0, 'string', True]) | \n", "
8 | \n", "int | \n", "immutable | \n", "Integer of unlimited magnitude[76] | \n", "42 | \n", "
9 | \n", "list | \n", "mutable | \n", "List, can contain mixed types | \n", "[4.0, 'string', True] | \n", "
10 | \n", "set | \n", "mutable | \n", "Unordered set, contains no duplicates; can con... | \n", "{4.0, 'string', True} | \n", "
11 | \n", "str | \n", "immutable | \n", "A character string: sequence of Unicode codepo... | \n", "'Wikipedia' \"Wikipedia\" \"\"\"Spanning multiple l... | \n", "
12 | \n", "tuple | \n", "immutable | \n", "Can contain mixed types | \n", "(4.0, 'string', True)But we can append element... | \n", "
\n", " | Year | \n", "Name | \n", "Chief developer, company | \n", "Predecessor(s) | \n", "
---|---|---|---|---|
0 | \n", "1943–45 | \n", "Plankalkül (concept) | \n", "Konrad Zuse | \n", "none (unique language) | \n", "
1 | \n", "1943–46 | \n", "ENIAC coding system | \n", "John von Neumann, John Mauchly, J. Presper Eck... | \n", "none (unique language) | \n", "
2 | \n", "1946 | \n", "ENIAC Short Code | \n", "Richard Clippinger, John von Neumann after Ala... | \n", "ENIAC coding system | \n", "
3 | \n", "1946 | \n", "Von Neumann and Goldstine graphing system (Not... | \n", "John von Neumann and Herman Goldstine | \n", "ENIAC coding system | \n", "
4 | \n", "1947 | \n", "ARC Assembly | \n", "Kathleen Booth[1][2] | \n", "ENIAC coding system | \n", "
5 | \n", "1948 | \n", "CPC Coding scheme | \n", "Howard H. Aiken | \n", "Analytical Engine order code | \n", "
6 | \n", "1948 | \n", "Curry notation system | \n", "Haskell Curry | \n", "ENIAC coding system | \n", "
7 | \n", "1948 | \n", "Plankalkül (concept published) | \n", "Konrad Zuse | \n", "none (unique language) | \n", "
8 | \n", "1949 | \n", "Short Code | \n", "John Mauchly and William F. Schmitt | \n", "ENIAC Short Code | \n", "
9 | \n", "Year | \n", "Name | \n", "Chief developer, company | \n", "Predecessor(s) | \n", "
\n", " | Year | \n", "Name | \n", "Chief developer, company | \n", "Predecessor(s) | \n", "
---|---|---|---|---|
0 | \n", "1943–45 | \n", "Plankalkül (concept) | \n", "Konrad Zuse | \n", "none (unique language) | \n", "
1 | \n", "1943–46 | \n", "ENIAC coding system | \n", "John von Neumann, John Mauchly, J. Presper Eck... | \n", "none (unique language) | \n", "
2 | \n", "1946 | \n", "ENIAC Short Code | \n", "Richard Clippinger, John von Neumann after Ala... | \n", "ENIAC coding system | \n", "
3 | \n", "1946 | \n", "Von Neumann and Goldstine graphing system (Not... | \n", "John von Neumann and Herman Goldstine | \n", "ENIAC coding system | \n", "
4 | \n", "1947 | \n", "ARC Assembly | \n", "Kathleen Booth[1][2] | \n", "ENIAC coding system | \n", "
5 | \n", "1948 | \n", "CPC Coding scheme | \n", "Howard H. Aiken | \n", "Analytical Engine order code | \n", "
6 | \n", "1948 | \n", "Curry notation system | \n", "Haskell Curry | \n", "ENIAC coding system | \n", "
7 | \n", "1948 | \n", "Plankalkül (concept published) | \n", "Konrad Zuse | \n", "none (unique language) | \n", "
8 | \n", "1949 | \n", "Short Code | \n", "John Mauchly and William F. Schmitt | \n", "ENIAC Short Code | \n", "
9 | \n", "Year | \n", "Name | \n", "Chief developer, company | \n", "Predecessor(s) | \n", "
0 | \n", "1950 | \n", "Short Code | \n", "William F Schmidt, Albert B. Tonik,[3] J.R. Logan | \n", "Brief Code | \n", "
1 | \n", "1950 | \n", "Birkbeck Assembler | \n", "Kathleen Booth | \n", "ARC | \n", "
2 | \n", "1951 | \n", "Superplan | \n", "Heinz Rutishauser | \n", "Plankalkül | \n", "
3 | \n", "1951 | \n", "ALGAE | \n", "Edward A Voorhees and Karl Balke | \n", "none (unique language) | \n", "
4 | \n", "1951 | \n", "Intermediate Programming Language | \n", "Arthur Burks | \n", "Short Code | \n", "
5 | \n", "1951 | \n", "Regional Assembly Language | \n", "Maurice Wilkes | \n", "EDSAC | \n", "
6 | \n", "1951 | \n", "Boehm unnamed coding system | \n", "Corrado Böhm | \n", "CPC Coding scheme | \n", "
7 | \n", "1951 | \n", "Klammerausdrücke | \n", "Konrad Zuse | \n", "Plankalkül | \n", "
8 | \n", "1951 | \n", "OMNIBAC Symbolic Assembler | \n", "Charles Katz | \n", "Short Code | \n", "
9 | \n", "1951 | \n", "Stanislaus (Notation) | \n", "Fritz Bauer | \n", "none (unique language) | \n", "
10 | \n", "1951 | \n", "Whirlwind assembler | \n", "Charles Adams and Jack Gilmore at MIT Project ... | \n", "EDSAC | \n", "
11 | \n", "1951 | \n", "Rochester assembler | \n", "Nat Rochester | \n", "EDSAC | \n", "
12 | \n", "1951 | \n", "Sort Merge Generator | \n", "Betty Holberton | \n", "none (unique language) | \n", "
13 | \n", "1952 | \n", "A-0 | \n", "Grace Hopper | \n", "Short Code | \n", "
14 | \n", "1952 | \n", "Glennie Autocode | \n", "Alick Glennie after Alan Turing | \n", "CPC Coding scheme | \n", "
15 | \n", "1952 | \n", "Editing Generator | \n", "Milly Koss | \n", "SORT/MERGE | \n", "
16 | \n", "1952 | \n", "COMPOOL | \n", "RAND/SDC | \n", "none (unique language) | \n", "
17 | \n", "1953 | \n", "Speedcoding | \n", "John W. Backus | \n", "none (unique language) | \n", "
18 | \n", "1953 | \n", "READ/PRINT | \n", "Don Harroff, James Fishman, George Ryckman | \n", "none (unique language) | \n", "
19 | \n", "1954 | \n", "Laning and Zierler system | \n", "Laning, Zierler, Adams at MIT Project Whirlwind | \n", "none (unique language) | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
47 | \n", "2009 | \n", "Chapel | \n", "Brad Chamberlain, Cray Inc. | \n", "HPF, ZPL | \n", "
48 | \n", "2009 | \n", "Go | \n", "C, Oberon, Limbo, Smalltalk | \n", "|
49 | \n", "2009 | \n", "CoffeeScript | \n", "Jeremy Ashkenas | \n", "JavaScript, Ruby, Python, Haskell | \n", "
50 | \n", "2009 | \n", "Idris | \n", "Edwin Brady | \n", "Haskell, Agda, Coq | \n", "
51 | \n", "2009 | \n", "Parasail | \n", "S. Tucker Taft, AdaCore | \n", "Modula, Ada, Pascal, ML | \n", "
52 | \n", "2009 | \n", "Whiley | \n", "David J. Pearce | \n", "Java, C, Python | \n", "
53 | \n", "Year | \n", "Name | \n", "Chief developer, company | \n", "Predecessor(s) | \n", "
0 | \n", "2010 | \n", "Rust | \n", "Graydon Hoare, Mozilla | \n", "Alef, C++, Camlp4, Erlang, Hermes, Limbo, Napi... | \n", "
1 | \n", "2011 | \n", "Ceylon | \n", "Gavin King, Red Hat | \n", "Java | \n", "
2 | \n", "2011 | \n", "Dart | \n", "Java, JavaScript, CoffeeScript, Go | \n", "|
3 | \n", "2011 | \n", "C++11 | \n", "C++ ISO/IEC 14882:2011 | \n", "C++, Standard C, C | \n", "
4 | \n", "2011 | \n", "Kotlin | \n", "JetBrains | \n", "Java, Scala, Groovy, C#, Gosu | \n", "
5 | \n", "2011 | \n", "Red | \n", "Nenad Rakocevic | \n", "Rebol, Scala, Lua | \n", "
6 | \n", "2011 | \n", "Opa | \n", "MLstate | \n", "OCaml, Erlang, JavaScript | \n", "
7 | \n", "2012 | \n", "Elixir | \n", "José Valim | \n", "Erlang, Ruby, Clojure | \n", "
8 | \n", "2012 | \n", "Elm | \n", "Evan Czaplicki | \n", "Haskell, Standard ML, OCaml, F# | \n", "
9 | \n", "2012 | \n", "TypeScript | \n", "Anders Hejlsberg, Microsoft | \n", "JavaScript, CoffeeScript | \n", "
10 | \n", "2012 | \n", "Julia | \n", "Jeff Bezanson, Stefan Karpinski, Viral Shah, A... | \n", "MATLAB, Lisp, C, Fortran, Mathematica[9] (stri... | \n", "
11 | \n", "2012 | \n", "P | \n", "Vivek Gupta: not the politician, Ethan Jackson... | \n", "NaN | \n", "
12 | \n", "2012 | \n", "Ada 2012 | \n", "ARA and Ada Europe (ISO/IEC 8652:2012) | \n", "Ada 2005, ISO/IEC 8652:1995/Amd 1:2007 | \n", "
13 | \n", "2014 | \n", "Crystal | \n", "Ary Borenszweig, Manas Technology Solutions | \n", "Ruby, C, Rust, Go, C#, Python | \n", "
14 | \n", "2014 | \n", "Hack | \n", "PHP | \n", "|
15 | \n", "2014 | \n", "Swift | \n", "Apple Inc. | \n", "Objective-C, Rust, Haskell, Ruby, Python, C#, CLU | \n", "
16 | \n", "2014 | \n", "C++14 | \n", "C++ ISO/IEC 14882:2014 | \n", "C++, Standard C, C | \n", "
17 | \n", "2015 | \n", "Atari 2600 SuperCharger BASIC | \n", "Microsoft sponsored think tank RelationalFrame... | \n", "BASIC, Dartmouth BASIC (compiled programming l... | \n", "
18 | \n", "2015 | \n", "Perl 6 | \n", "The Rakudo Team | \n", "Perl, Haskell, Python, Ruby | \n", "
19 | \n", "2016 | \n", "Ring | \n", "Mahmoud Fayed | \n", "Lua, Python, Ruby, C, C#, BASIC, QML, xBase, S... | \n", "
20 | \n", "2017 | \n", "C++17 | \n", "C++ ISO/IEC 14882:2017 | \n", "C++, Standard C, C | \n", "
21 | \n", "2017 | \n", "Atari 2600 Flashback BASIC | \n", "Microsoft sponsored think tank RelationalFrame... | \n", "BASIC, Dartmouth BASIC (compiled programming l... | \n", "
22 | \n", "Year | \n", "Name | \n", "Chief developer, company | \n", "Predecessor(s) | \n", "
388 rows × 4 columns
\n", "\n", " | Year | \n", "Name | \n", "Chief developer, company | \n", "Predecessor(s) | \n", "
---|---|---|---|---|
0 | \n", "1943–45 | \n", "Plankalkül (concept) | \n", "Konrad Zuse | \n", "none (unique language) | \n", "
1 | \n", "1943–46 | \n", "ENIAC coding system | \n", "John von Neumann, John Mauchly, J. Presper Eck... | \n", "none (unique language) | \n", "
2 | \n", "1946 | \n", "ENIAC Short Code | \n", "Richard Clippinger, John von Neumann after Ala... | \n", "ENIAC coding system | \n", "
3 | \n", "1946 | \n", "Von Neumann and Goldstine graphing system (Not... | \n", "John von Neumann and Herman Goldstine | \n", "ENIAC coding system | \n", "
4 | \n", "1947 | \n", "ARC Assembly | \n", "Kathleen Booth[1][2] | \n", "ENIAC coding system | \n", "
5 | \n", "1948 | \n", "CPC Coding scheme | \n", "Howard H. Aiken | \n", "Analytical Engine order code | \n", "
6 | \n", "1948 | \n", "Curry notation system | \n", "Haskell Curry | \n", "ENIAC coding system | \n", "
7 | \n", "1948 | \n", "Plankalkül (concept published) | \n", "Konrad Zuse | \n", "none (unique language) | \n", "
8 | \n", "1949 | \n", "Short Code | \n", "John Mauchly and William F. Schmitt | \n", "ENIAC Short Code | \n", "
0 | \n", "1950 | \n", "Short Code | \n", "William F Schmidt, Albert B. Tonik,[3] J.R. Logan | \n", "Brief Code | \n", "
1 | \n", "1950 | \n", "Birkbeck Assembler | \n", "Kathleen Booth | \n", "ARC | \n", "
2 | \n", "1951 | \n", "Superplan | \n", "Heinz Rutishauser | \n", "Plankalkül | \n", "
3 | \n", "1951 | \n", "ALGAE | \n", "Edward A Voorhees and Karl Balke | \n", "none (unique language) | \n", "
4 | \n", "1951 | \n", "Intermediate Programming Language | \n", "Arthur Burks | \n", "Short Code | \n", "
5 | \n", "1951 | \n", "Regional Assembly Language | \n", "Maurice Wilkes | \n", "EDSAC | \n", "
6 | \n", "1951 | \n", "Boehm unnamed coding system | \n", "Corrado Böhm | \n", "CPC Coding scheme | \n", "
7 | \n", "1951 | \n", "Klammerausdrücke | \n", "Konrad Zuse | \n", "Plankalkül | \n", "
8 | \n", "1951 | \n", "OMNIBAC Symbolic Assembler | \n", "Charles Katz | \n", "Short Code | \n", "
9 | \n", "1951 | \n", "Stanislaus (Notation) | \n", "Fritz Bauer | \n", "none (unique language) | \n", "
10 | \n", "1951 | \n", "Whirlwind assembler | \n", "Charles Adams and Jack Gilmore at MIT Project ... | \n", "EDSAC | \n", "
11 | \n", "1951 | \n", "Rochester assembler | \n", "Nat Rochester | \n", "EDSAC | \n", "
12 | \n", "1951 | \n", "Sort Merge Generator | \n", "Betty Holberton | \n", "none (unique language) | \n", "
13 | \n", "1952 | \n", "A-0 | \n", "Grace Hopper | \n", "Short Code | \n", "
14 | \n", "1952 | \n", "Glennie Autocode | \n", "Alick Glennie after Alan Turing | \n", "CPC Coding scheme | \n", "
15 | \n", "1952 | \n", "Editing Generator | \n", "Milly Koss | \n", "SORT/MERGE | \n", "
16 | \n", "1952 | \n", "COMPOOL | \n", "RAND/SDC | \n", "none (unique language) | \n", "
17 | \n", "1953 | \n", "Speedcoding | \n", "John W. Backus | \n", "none (unique language) | \n", "
18 | \n", "1953 | \n", "READ/PRINT | \n", "Don Harroff, James Fishman, George Ryckman | \n", "none (unique language) | \n", "
19 | \n", "1954 | \n", "Laning and Zierler system | \n", "Laning, Zierler, Adams at MIT Project Whirlwind | \n", "none (unique language) | \n", "
20 | \n", "1954 | \n", "Mark I Autocode | \n", "Tony Brooker | \n", "Glennie Autocode | \n", "
... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
45 | \n", "2008 | \n", "Genie | \n", "Jamie McCracken | \n", "Python, Boo, D, Object Pascal | \n", "
46 | \n", "2008 | \n", "Pure | \n", "Albert Gräf | \n", "Q | \n", "
47 | \n", "2009 | \n", "Chapel | \n", "Brad Chamberlain, Cray Inc. | \n", "HPF, ZPL | \n", "
48 | \n", "2009 | \n", "Go | \n", "C, Oberon, Limbo, Smalltalk | \n", "|
49 | \n", "2009 | \n", "CoffeeScript | \n", "Jeremy Ashkenas | \n", "JavaScript, Ruby, Python, Haskell | \n", "
50 | \n", "2009 | \n", "Idris | \n", "Edwin Brady | \n", "Haskell, Agda, Coq | \n", "
51 | \n", "2009 | \n", "Parasail | \n", "S. Tucker Taft, AdaCore | \n", "Modula, Ada, Pascal, ML | \n", "
52 | \n", "2009 | \n", "Whiley | \n", "David J. Pearce | \n", "Java, C, Python | \n", "
0 | \n", "2010 | \n", "Rust | \n", "Graydon Hoare, Mozilla | \n", "Alef, C++, Camlp4, Erlang, Hermes, Limbo, Napi... | \n", "
1 | \n", "2011 | \n", "Ceylon | \n", "Gavin King, Red Hat | \n", "Java | \n", "
2 | \n", "2011 | \n", "Dart | \n", "Java, JavaScript, CoffeeScript, Go | \n", "|
3 | \n", "2011 | \n", "C++11 | \n", "C++ ISO/IEC 14882:2011 | \n", "C++, Standard C, C | \n", "
4 | \n", "2011 | \n", "Kotlin | \n", "JetBrains | \n", "Java, Scala, Groovy, C#, Gosu | \n", "
5 | \n", "2011 | \n", "Red | \n", "Nenad Rakocevic | \n", "Rebol, Scala, Lua | \n", "
6 | \n", "2011 | \n", "Opa | \n", "MLstate | \n", "OCaml, Erlang, JavaScript | \n", "
7 | \n", "2012 | \n", "Elixir | \n", "José Valim | \n", "Erlang, Ruby, Clojure | \n", "
8 | \n", "2012 | \n", "Elm | \n", "Evan Czaplicki | \n", "Haskell, Standard ML, OCaml, F# | \n", "
9 | \n", "2012 | \n", "TypeScript | \n", "Anders Hejlsberg, Microsoft | \n", "JavaScript, CoffeeScript | \n", "
10 | \n", "2012 | \n", "Julia | \n", "Jeff Bezanson, Stefan Karpinski, Viral Shah, A... | \n", "MATLAB, Lisp, C, Fortran, Mathematica[9] (stri... | \n", "
11 | \n", "2012 | \n", "P | \n", "Vivek Gupta: not the politician, Ethan Jackson... | \n", "NaN | \n", "
12 | \n", "2012 | \n", "Ada 2012 | \n", "ARA and Ada Europe (ISO/IEC 8652:2012) | \n", "Ada 2005, ISO/IEC 8652:1995/Amd 1:2007 | \n", "
13 | \n", "2014 | \n", "Crystal | \n", "Ary Borenszweig, Manas Technology Solutions | \n", "Ruby, C, Rust, Go, C#, Python | \n", "
14 | \n", "2014 | \n", "Hack | \n", "PHP | \n", "|
15 | \n", "2014 | \n", "Swift | \n", "Apple Inc. | \n", "Objective-C, Rust, Haskell, Ruby, Python, C#, CLU | \n", "
16 | \n", "2014 | \n", "C++14 | \n", "C++ ISO/IEC 14882:2014 | \n", "C++, Standard C, C | \n", "
17 | \n", "2015 | \n", "Atari 2600 SuperCharger BASIC | \n", "Microsoft sponsored think tank RelationalFrame... | \n", "BASIC, Dartmouth BASIC (compiled programming l... | \n", "
18 | \n", "2015 | \n", "Perl 6 | \n", "The Rakudo Team | \n", "Perl, Haskell, Python, Ruby | \n", "
19 | \n", "2016 | \n", "Ring | \n", "Mahmoud Fayed | \n", "Lua, Python, Ruby, C, C#, BASIC, QML, xBase, S... | \n", "
20 | \n", "2017 | \n", "C++17 | \n", "C++ ISO/IEC 14882:2017 | \n", "C++, Standard C, C | \n", "
21 | \n", "2017 | \n", "Atari 2600 Flashback BASIC | \n", "Microsoft sponsored think tank RelationalFrame... | \n", "BASIC, Dartmouth BASIC (compiled programming l... | \n", "
380 rows × 4 columns
\n", "\n", " | Year | \n", "Name | \n", "Chief developer, company | \n", "Predecessor(s) | \n", "
---|---|---|---|---|
9 | \n", "1991 | \n", "Python | \n", "Guido van Rossum | \n", "ABC, ALGOL 68, Icon, Modula-3 | \n", "