{ "cells": [ { "attachments": {}, "cell_type": "markdown", "metadata": {}, "source": [ "# SpreadSheet Munging Strategies in Python - Small Multiples" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Small Multiples**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "*updated : September 25, 2024*" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This is part of a series of blog posts about extracting data from spreadsheets using Python. It is based on the [book](https://nacnudus.github.io/spreadsheet-munging-strategies/index.html) written by [Duncan Garmonsway](https://twitter.com/nacnudus?lang=en), which was written primarily for R users. Links to the other posts are on the sidebar.\n", "\n", "The key takeaway is this - you understand your data layout; use the tools to achieve your end goal. [xlsx_cells](https://pyjanitor-devs.github.io/pyjanitor/api/io/#janitor.io.xlsx_cells) offers a way to get the cells in a spreadsheet into individual rows, with some metadata. The final outcome however relies on your understanding of the data layout and its proper application." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Small multiples refer to mini tables embedded in a spreadsheet, or multiple spreadsheets. Ideally, this tables should be lumped into one dataframe for meaningful analysis. The examples below show different scenarios and how we can reshape the data" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### __Case 1 : Small Multiples with all Headers Present for Each Multiple__\n", "\n", "" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this spreadsheet, each table is a separate subject. It would be better to aggregate all the subjects and underlying data into one table." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# pip install pyjanitor\n", "import pandas as pd\n", "import janitor as jn\n", "import sys\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "pandas version: 2.2.2\n", "janitor version: 0.29.1\n", "python version: 3.10.14 | packaged by conda-forge | (main, Mar 20 2024, 12:51:49) [Clang 16.0.6 ]\n", "numpy version: 2.0.2\n" ] } ], "source": [ "print('pandas version: ', pd.__version__)\n", "print('janitor version: ', jn.__version__)\n", "print('python version: ', sys.version)\n", "print('numpy version: ', np.__version__)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "excel_file = pd.ExcelFile(\"Data_files/worked-examples.xlsx\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | value | \n", "internal_value | \n", "coordinate | \n", "row | \n", "column | \n", "data_type | \n", "is_date | \n", "number_format | \n", "font | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "Classics | \n", "Classics | \n", "A1 | \n", "1 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
1 | \n", "History | \n", "History | \n", "E1 | \n", "1 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
2 | \n", "Name | \n", "Name | \n", "A2 | \n", "2 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
3 | \n", "Score | \n", "Score | \n", "B2 | \n", "2 | \n", "2 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
4 | \n", "Grade | \n", "Grade | \n", "C2 | \n", "2 | \n", "3 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
5 | \n", "Name | \n", "Name | \n", "E2 | \n", "2 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
6 | \n", "Score | \n", "Score | \n", "F2 | \n", "2 | \n", "6 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
7 | \n", "Grade | \n", "Grade | \n", "G2 | \n", "2 | \n", "7 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
8 | \n", "Matilda | \n", "Matilda | \n", "A3 | \n", "3 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
9 | \n", "1 | \n", "1 | \n", "B3 | \n", "3 | \n", "2 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
10 | \n", "F | \n", "F | \n", "C3 | \n", "3 | \n", "3 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
11 | \n", "Matilda | \n", "Matilda | \n", "E3 | \n", "3 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
12 | \n", "3 | \n", "3 | \n", "F3 | \n", "3 | \n", "6 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
13 | \n", "D | \n", "D | \n", "G3 | \n", "3 | \n", "7 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
14 | \n", "Olivia | \n", "Olivia | \n", "A4 | \n", "4 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
15 | \n", "2 | \n", "2 | \n", "B4 | \n", "4 | \n", "2 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
16 | \n", "D | \n", "D | \n", "C4 | \n", "4 | \n", "3 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
17 | \n", "Olivia | \n", "Olivia | \n", "E4 | \n", "4 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
18 | \n", "4 | \n", "4 | \n", "F4 | \n", "4 | \n", "6 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
19 | \n", "C | \n", "C | \n", "G4 | \n", "4 | \n", "7 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
20 | \n", "Music | \n", "Music | \n", "A6 | \n", "6 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
21 | \n", "Drama | \n", "Drama | \n", "E6 | \n", "6 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
22 | \n", "Name | \n", "Name | \n", "A7 | \n", "7 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
23 | \n", "Score | \n", "Score | \n", "B7 | \n", "7 | \n", "2 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
24 | \n", "Grade | \n", "Grade | \n", "C7 | \n", "7 | \n", "3 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
25 | \n", "Name | \n", "Name | \n", "E7 | \n", "7 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
26 | \n", "Score | \n", "Score | \n", "F7 | \n", "7 | \n", "6 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
27 | \n", "Grade | \n", "Grade | \n", "G7 | \n", "7 | \n", "7 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
28 | \n", "Matilda | \n", "Matilda | \n", "A8 | \n", "8 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
29 | \n", "5 | \n", "5 | \n", "B8 | \n", "8 | \n", "2 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
30 | \n", "B | \n", "B | \n", "C8 | \n", "8 | \n", "3 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
31 | \n", "Matilda | \n", "Matilda | \n", "E8 | \n", "8 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
32 | \n", "7 | \n", "7 | \n", "F8 | \n", "8 | \n", "6 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
33 | \n", "A | \n", "A | \n", "G8 | \n", "8 | \n", "7 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
34 | \n", "Olivia | \n", "Olivia | \n", "A9 | \n", "9 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
35 | \n", "6 | \n", "6 | \n", "B9 | \n", "9 | \n", "2 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
36 | \n", "B | \n", "B | \n", "C9 | \n", "9 | \n", "3 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
37 | \n", "Olivia | \n", "Olivia | \n", "E9 | \n", "9 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
38 | \n", "8 | \n", "8 | \n", "F9 | \n", "9 | \n", "6 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
39 | \n", "A | \n", "A | \n", "G9 | \n", "9 | \n", "7 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
\n", " | value | \n", "row | \n", "column | \n", "
---|---|---|---|
8 | \n", "Matilda | \n", "3 | \n", "1 | \n", "
9 | \n", "1 | \n", "3 | \n", "2 | \n", "
10 | \n", "F | \n", "3 | \n", "3 | \n", "
11 | \n", "Matilda | \n", "3 | \n", "5 | \n", "
12 | \n", "3 | \n", "3 | \n", "6 | \n", "
13 | \n", "D | \n", "3 | \n", "7 | \n", "
14 | \n", "Olivia | \n", "4 | \n", "1 | \n", "
15 | \n", "2 | \n", "4 | \n", "2 | \n", "
16 | \n", "D | \n", "4 | \n", "3 | \n", "
17 | \n", "Olivia | \n", "4 | \n", "5 | \n", "
18 | \n", "4 | \n", "4 | \n", "6 | \n", "
19 | \n", "C | \n", "4 | \n", "7 | \n", "
28 | \n", "Matilda | \n", "8 | \n", "1 | \n", "
29 | \n", "5 | \n", "8 | \n", "2 | \n", "
30 | \n", "B | \n", "8 | \n", "3 | \n", "
31 | \n", "Matilda | \n", "8 | \n", "5 | \n", "
32 | \n", "7 | \n", "8 | \n", "6 | \n", "
33 | \n", "A | \n", "8 | \n", "7 | \n", "
34 | \n", "Olivia | \n", "9 | \n", "1 | \n", "
35 | \n", "6 | \n", "9 | \n", "2 | \n", "
36 | \n", "B | \n", "9 | \n", "3 | \n", "
37 | \n", "Olivia | \n", "9 | \n", "5 | \n", "
38 | \n", "8 | \n", "9 | \n", "6 | \n", "
39 | \n", "A | \n", "9 | \n", "7 | \n", "
\n", " | Name | \n", "Score | \n", "Grade | \n", "row | \n", "column | \n", "
---|---|---|---|---|---|
0 | \n", "Matilda | \n", "1 | \n", "F | \n", "3 | \n", "1 | \n", "
2 | \n", "Olivia | \n", "2 | \n", "D | \n", "4 | \n", "1 | \n", "
4 | \n", "Matilda | \n", "5 | \n", "B | \n", "8 | \n", "1 | \n", "
6 | \n", "Olivia | \n", "6 | \n", "B | \n", "9 | \n", "1 | \n", "
1 | \n", "Matilda | \n", "3 | \n", "D | \n", "3 | \n", "5 | \n", "
3 | \n", "Olivia | \n", "4 | \n", "C | \n", "4 | \n", "5 | \n", "
5 | \n", "Matilda | \n", "7 | \n", "A | \n", "8 | \n", "5 | \n", "
7 | \n", "Olivia | \n", "8 | \n", "A | \n", "9 | \n", "5 | \n", "
\n", " | subject | \n", "row | \n", "column | \n", "
---|---|---|---|
0 | \n", "Classics | \n", "3 | \n", "1 | \n", "
1 | \n", "History | \n", "3 | \n", "5 | \n", "
20 | \n", "Music | \n", "8 | \n", "1 | \n", "
21 | \n", "Drama | \n", "8 | \n", "5 | \n", "
\n", " | Name | \n", "Subject | \n", "Score | \n", "Grade | \n", "
---|---|---|---|---|
0 | \n", "Matilda | \n", "Classics | \n", "1 | \n", "F | \n", "
1 | \n", "Olivia | \n", "Classics | \n", "2 | \n", "D | \n", "
2 | \n", "Matilda | \n", "Music | \n", "5 | \n", "B | \n", "
3 | \n", "Olivia | \n", "Music | \n", "6 | \n", "B | \n", "
4 | \n", "Matilda | \n", "History | \n", "3 | \n", "D | \n", "
5 | \n", "Olivia | \n", "History | \n", "4 | \n", "C | \n", "
6 | \n", "Matilda | \n", "Drama | \n", "7 | \n", "A | \n", "
7 | \n", "Olivia | \n", "Drama | \n", "8 | \n", "A | \n", "
\n", " | subject | \n", "student | \n", "scores | \n", "
---|---|---|---|
0 | \n", "Classics | \n", "Matilda | \n", "1 | \n", "
1 | \n", "Classics | \n", "Nicholas | \n", "3 | \n", "
2 | \n", "History | \n", "Matilda | \n", "3 | \n", "
3 | \n", "History | \n", "Nicholas | \n", "5 | \n", "
4 | \n", "Music | \n", "Matilda | \n", "5 | \n", "
5 | \n", "Music | \n", "Nicholas | \n", "9 | \n", "
6 | \n", "Drama | \n", "Matilda | \n", "7 | \n", "
7 | \n", "Drama | \n", "Nicholas | \n", "12 | \n", "
\n", " | sex | \n", "subject | \n", "student | \n", "scores | \n", "
---|---|---|---|---|
0 | \n", "female | \n", "Classics | \n", "Matilda | \n", "1 | \n", "
1 | \n", "female | \n", "Classics | \n", "Olivia | \n", "2 | \n", "
2 | \n", "female | \n", "History | \n", "Matilda | \n", "3 | \n", "
3 | \n", "female | \n", "History | \n", "Olivia | \n", "4 | \n", "
4 | \n", "male | \n", "Classics | \n", "Nicholas | \n", "3 | \n", "
5 | \n", "male | \n", "Classics | \n", "Paul | \n", "0 | \n", "
6 | \n", "male | \n", "History | \n", "Nicholas | \n", "5 | \n", "
7 | \n", "male | \n", "History | \n", "Paul | \n", "1 | \n", "
\n", " | value | \n", "internal_value | \n", "coordinate | \n", "row | \n", "column | \n", "data_type | \n", "is_date | \n", "number_format | \n", "font | \n", "
---|---|---|---|---|---|---|---|---|---|
0 | \n", "Humanities | \n", "Humanities | \n", "B1 | \n", "1 | \n", "2 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
1 | \n", "Performance | \n", "Performance | \n", "F1 | \n", "1 | \n", "6 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
2 | \n", "Name | \n", "Name | \n", "A2 | \n", "2 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
3 | \n", "Classics | \n", "Classics | \n", "B2 | \n", "2 | \n", "2 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
4 | \n", "Grade | \n", "Grade | \n", "C2 | \n", "2 | \n", "3 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
5 | \n", "History | \n", "History | \n", "D2 | \n", "2 | \n", "4 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
6 | \n", "Grade | \n", "Grade | \n", "E2 | \n", "2 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
7 | \n", "Music | \n", "Music | \n", "F2 | \n", "2 | \n", "6 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
8 | \n", "Grade | \n", "Grade | \n", "G2 | \n", "2 | \n", "7 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
9 | \n", "Drama | \n", "Drama | \n", "H2 | \n", "2 | \n", "8 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
10 | \n", "Grade | \n", "Grade | \n", "I2 | \n", "2 | \n", "9 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
11 | \n", "Matilda | \n", "Matilda | \n", "A3 | \n", "3 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
12 | \n", "1 | \n", "1 | \n", "B3 | \n", "3 | \n", "2 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
13 | \n", "F | \n", "F | \n", "C3 | \n", "3 | \n", "3 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
14 | \n", "3 | \n", "3 | \n", "D3 | \n", "3 | \n", "4 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
15 | \n", "D | \n", "D | \n", "E3 | \n", "3 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
16 | \n", "5 | \n", "5 | \n", "F3 | \n", "3 | \n", "6 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
17 | \n", "B | \n", "B | \n", "G3 | \n", "3 | \n", "7 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
18 | \n", "7 | \n", "7 | \n", "H3 | \n", "3 | \n", "8 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
19 | \n", "A | \n", "A | \n", "I3 | \n", "3 | \n", "9 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
20 | \n", "Olivia | \n", "Olivia | \n", "A4 | \n", "4 | \n", "1 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
21 | \n", "2 | \n", "2 | \n", "B4 | \n", "4 | \n", "2 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
22 | \n", "D | \n", "D | \n", "C4 | \n", "4 | \n", "3 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
23 | \n", "4 | \n", "4 | \n", "D4 | \n", "4 | \n", "4 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
24 | \n", "C | \n", "C | \n", "E4 | \n", "4 | \n", "5 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
25 | \n", "6 | \n", "6 | \n", "F4 | \n", "4 | \n", "6 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
26 | \n", "B | \n", "B | \n", "G4 | \n", "4 | \n", "7 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
27 | \n", "8 | \n", "8 | \n", "H4 | \n", "4 | \n", "8 | \n", "n | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
28 | \n", "A | \n", "A | \n", "I4 | \n", "4 | \n", "9 | \n", "s | \n", "False | \n", "General | \n", "{'name': 'Calibri', 'family': 2.0, 'sz': 11.0,... | \n", "
\n", " | field | \n", "column | \n", "
---|---|---|
0 | \n", "Humanities | \n", "2 | \n", "
1 | \n", "Performance | \n", "6 | \n", "
\n", " | subject | \n", "column | \n", "field | \n", "
---|---|---|---|
0 | \n", "Classics | \n", "2 | \n", "Humanities | \n", "
1 | \n", "Classics | \n", "3 | \n", "Humanities | \n", "
2 | \n", "History | \n", "4 | \n", "Humanities | \n", "
3 | \n", "History | \n", "5 | \n", "Humanities | \n", "
4 | \n", "Music | \n", "6 | \n", "Performance | \n", "
5 | \n", "Music | \n", "7 | \n", "Performance | \n", "
6 | \n", "Drama | \n", "8 | \n", "Performance | \n", "
7 | \n", "Drama | \n", "9 | \n", "Performance | \n", "
\n", " | score | \n", "grade | \n", "row | \n", "column | \n", "
---|---|---|---|---|
0 | \n", "1 | \n", "F | \n", "3 | \n", "2 | \n", "
1 | \n", "3 | \n", "D | \n", "3 | \n", "4 | \n", "
2 | \n", "5 | \n", "B | \n", "3 | \n", "6 | \n", "
3 | \n", "7 | \n", "A | \n", "3 | \n", "8 | \n", "
4 | \n", "2 | \n", "D | \n", "4 | \n", "2 | \n", "
5 | \n", "4 | \n", "C | \n", "4 | \n", "4 | \n", "
6 | \n", "6 | \n", "B | \n", "4 | \n", "6 | \n", "
7 | \n", "8 | \n", "A | \n", "4 | \n", "8 | \n", "
\n", " | student | \n", "field | \n", "subject | \n", "score | \n", "grade | \n", "
---|---|---|---|---|---|
0 | \n", "Matilda | \n", "Humanities | \n", "Classics | \n", "1 | \n", "F | \n", "
1 | \n", "Matilda | \n", "Humanities | \n", "History | \n", "3 | \n", "D | \n", "
2 | \n", "Matilda | \n", "Performance | \n", "Music | \n", "5 | \n", "B | \n", "
3 | \n", "Matilda | \n", "Performance | \n", "Drama | \n", "7 | \n", "A | \n", "
4 | \n", "Olivia | \n", "Humanities | \n", "Classics | \n", "2 | \n", "D | \n", "
5 | \n", "Olivia | \n", "Humanities | \n", "History | \n", "4 | \n", "C | \n", "
6 | \n", "Olivia | \n", "Performance | \n", "Music | \n", "6 | \n", "B | \n", "
7 | \n", "Olivia | \n", "Performance | \n", "Drama | \n", "8 | \n", "A | \n", "
\n", " | field | \n", "subject | \n", "student | \n", "scores | \n", "grade | \n", "
---|---|---|---|---|---|
0 | \n", "Humanities | \n", "Classics | \n", "Matilda | \n", "1 | \n", "F | \n", "
2 | \n", "Humanities | \n", "History | \n", "Matilda | \n", "3 | \n", "D | \n", "
4 | \n", "Performance | \n", "Music | \n", "Matilda | \n", "5 | \n", "B | \n", "
6 | \n", "Performance | \n", "Drama | \n", "Matilda | \n", "7 | \n", "A | \n", "
8 | \n", "Humanities | \n", "Classics | \n", "Olivia | \n", "2 | \n", "D | \n", "
10 | \n", "Humanities | \n", "History | \n", "Olivia | \n", "4 | \n", "C | \n", "
12 | \n", "Performance | \n", "Music | \n", "Olivia | \n", "6 | \n", "B | \n", "
14 | \n", "Performance | \n", "Drama | \n", "Olivia | \n", "8 | \n", "A | \n", "