From 8ac2ac542842c0b10bba7efdce9b35985959f450 Mon Sep 17 00:00:00 2001 From: pryn-kb Date: Tue, 3 Sep 2024 13:08:52 +0000 Subject: [PATCH] deploy: ebbc0ce2152b2108d6a10021945ed46b3aa278ff --- ...07b338fc656019614fe2b321ab25f0fbb8301f.png | Bin 8913 -> 0 bytes ...8f5cd2f1599f69b41613684218939910d0ef35.png | Bin 25502 -> 0 bytes ...018614ad688d618e16545257ea4091185e6312.png | Bin 9158 -> 0 bytes _sources/docs/101/part2.ipynb | 2 +- _sources/docs/howto/jupyterlab.ipynb | 4 +- .../docs/pandas/01_pandas_dataframe.ipynb | 21 +- .../docs/pandas/02_Pandas_tabular_data.ipynb | 20 +- .../docs/pandas/02_pandas_tabular_data.ipynb | 20 +- _sources/docs/pandas/03_Pandas_subsets.ipynb | 46 +- _sources/docs/pandas/03_pandas_subsets.ipynb | 46 +- .../pandas/04_pandas_summary_statistics.ipynb | 18 +- _sources/docs/pandas/05_pandas_plot.ipynb | 43 +- _sources/docs/pandas/getting_started.ipynb | 28 + .../docs/pandas/xx_03_pandas_subsets.ipynb | 2356 ----------------- _sources/docs/pandas/xx_pandas_loc_iloc.ipynb | 1152 -------- _sources/docs/pandas/xx_variables.ipynb | 1877 ------------- _to_be_deleted_later/admonition_boxes.html | 5 +- _to_be_deleted_later/intro_old.html | 5 +- _to_be_deleted_later/markdown-notebooks.html | 5 +- _to_be_deleted_later/markdown.html | 5 +- _to_be_deleted_later/notebooks.html | 7 +- docs/101/01_data_types.html | 5 +- docs/101/02_variables_and_assignment.html | 5 +- docs/101/03_type_conversion.html | 5 +- docs/101/04_built-in_functions.html | 5 +- docs/101/05_lists.html | 5 +- docs/101/06_for_loops.html | 5 +- docs/101/07_conditionals.html | 5 +- docs/101/part1.html | 5 +- docs/101/part2.html | 7 +- docs/_test/2024_ods.html | 5 +- docs/_test/regex_and_frankenstein.html | 5 +- docs/howto/dictionaries.html | 5 +- docs/howto/dictionary_101.html | 5 +- docs/howto/dictionary_pandas.html | 5 +- docs/howto/help_and_documentation.html | 5 +- docs/howto/interact.html | 5 +- docs/howto/interact_original.html | 5 +- docs/howto/jupyterlab.html | 9 +- docs/howto/jupyterlab_1.html | 5 +- docs/howto/jupyterlab_2.html | 5 +- docs/howto/setup.html | 5 +- docs/howto/sign_up.html | 5 +- docs/intro.html | 5 +- docs/pandas/00_pandas_start.html | 5 +- docs/pandas/01_pandas_dataframe.html | 21 +- docs/pandas/02_Pandas_tabular_data.html | 24 +- docs/pandas/02_pandas_tabular_data.html | 22 +- docs/pandas/03_Pandas_subsets.html | 48 +- docs/pandas/03_pandas_subsets.html | 48 +- docs/pandas/04_pandas_summary_statistics.html | 24 +- docs/pandas/05_pandas_plot.html | 51 +- docs/pandas/getting_started.html | 19 +- docs/pandas/xx_03_pandas_subsets.html | 2129 --------------- docs/pandas/xx_pandas_loc_iloc.html | 1441 ---------- docs/pandas/xx_variables.html | 1400 ---------- genindex.html | 5 +- objects.inv | Bin 1098 -> 1052 bytes search.html | 5 +- searchindex.js | 2 +- 60 files changed, 368 insertions(+), 10657 deletions(-) delete mode 100644 _images/154fcc1eef87d3ce9920f53fad07b338fc656019614fe2b321ab25f0fbb8301f.png delete mode 100644 _images/beefdc1c447dcb2e8b55b9493d8f5cd2f1599f69b41613684218939910d0ef35.png delete mode 100644 _images/e3e0abab37ae3c6b27d59db7ee018614ad688d618e16545257ea4091185e6312.png delete mode 100644 _sources/docs/pandas/xx_03_pandas_subsets.ipynb delete mode 100644 _sources/docs/pandas/xx_pandas_loc_iloc.ipynb delete mode 100644 _sources/docs/pandas/xx_variables.ipynb delete mode 100644 docs/pandas/xx_03_pandas_subsets.html delete mode 100644 docs/pandas/xx_pandas_loc_iloc.html delete mode 100644 docs/pandas/xx_variables.html diff --git a/_images/154fcc1eef87d3ce9920f53fad07b338fc656019614fe2b321ab25f0fbb8301f.png b/_images/154fcc1eef87d3ce9920f53fad07b338fc656019614fe2b321ab25f0fbb8301f.png deleted file mode 100644 index 4fd4c8b5d3e5a4ff187b9cd83c84572684353314..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8913 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 CBKa8r diff --git a/_images/beefdc1c447dcb2e8b55b9493d8f5cd2f1599f69b41613684218939910d0ef35.png b/_images/beefdc1c447dcb2e8b55b9493d8f5cd2f1599f69b41613684218939910d0ef35.png deleted file mode 100644 index 8395bc37d9fe7399f33ff2e384b4dc775244d7b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25502 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%0D8Ta^) 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 diff --git a/_images/e3e0abab37ae3c6b27d59db7ee018614ad688d618e16545257ea4091185e6312.png b/_images/e3e0abab37ae3c6b27d59db7ee018614ad688d618e16545257ea4091185e6312.png deleted file mode 100644 index baada7634f7d4ecc20a67752035b62363c480637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9158 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 diff --git a/_sources/docs/101/part2.ipynb b/_sources/docs/101/part2.ipynb index f8528f77..ad8eba73 100644 --- a/_sources/docs/101/part2.ipynb +++ b/_sources/docs/101/part2.ipynb @@ -27,7 +27,7 @@ "source": [ "Python for Absolute Beginners, Part 2.\n", "\n", - "In this second part of our introduction to Python, you will build on the foundations from Part 1 to start writing short scripts. By the end of this course, you will even have the opportunity to create a small game!\n", + "In this second part of our introduction to Python, you will build on the foundations from [Part 1](../101/part1) to start writing short scripts. By the end of this course, you will even have the opportunity to create a small game!\n", "\n", "To participate in this course, it is essential that you either have completed Part 1 or possess an understanding of the topics covered there. This will ensure that you are well prepared to take full advantage of the more advanced concepts in Part 2." ] diff --git a/_sources/docs/howto/jupyterlab.ipynb b/_sources/docs/howto/jupyterlab.ipynb index af38490c..93fd0b69 100644 --- a/_sources/docs/howto/jupyterlab.ipynb +++ b/_sources/docs/howto/jupyterlab.ipynb @@ -15,9 +15,9 @@ "source": [ "This resource is designed to help you navigate and make the most of JupyterLab, whether you are just getting started or looking to enhance your workflow.\n", "\n", - "In the \"Open and Navigate JupyterLab\" section, you will find essential tips on opening files, managing your workspace, and saving your work effectively.\n", + "In the [Open and Navigate JupyterLab](jupyterlab_1) section, you will find essential tips on opening files, managing your workspace, and saving your work effectively.\n", "\n", - "The \"Code in JupyterLab\" section provides a deeper dive into running code cells, understanding the different modes, and efficiently organizing your notebook through creating, deleting, and moving cells. You will also learn about useful features like auto-closing brackets and managing kernels.\n", + "The [Code in JupyterLab](jupyterlab_2) section provides a deeper dive into running code cells, understanding the different modes, and efficiently organizing your notebook through creating, deleting, and moving cells. You will also learn about useful features like auto-closing brackets and managing kernels.\n", "\n", "For more in-depth information, visit the official [JupyterLab User Guide](https://jupyterlab.readthedocs.io/en/stable/user/)." ] diff --git a/_sources/docs/pandas/01_pandas_dataframe.ipynb b/_sources/docs/pandas/01_pandas_dataframe.ipynb index 7ef42594..2284d4a1 100644 --- a/_sources/docs/pandas/01_pandas_dataframe.ipynb +++ b/_sources/docs/pandas/01_pandas_dataframe.ipynb @@ -14,6 +14,25 @@ "# Pandas `DataFrame`" ] }, + { + "cell_type": "markdown", + "id": "64953a72-9964-4d8c-b420-b3f97dad7679", + "metadata": {}, + "source": [ + "```{admonition} Learning Objectives\n", + "\n", + "Questions:\n", + "* What is a Pandas `DataFrame`?\n", + "* How is a `DataFrame` used to manage and manipulate data?\n", + "\n", + "Objectives:\n", + "* Understand the structure and purpose of a `DataFrame`.\n", + "* Create a `DataFrame` from lists.\n", + "* Perform basic `DataFrame` manipulations, such as renaming columns and transposing data.\n", + "* Understand the structure and purpose of a Pandas `Series`.\n", + "* Append `Series` as columns to an existing `DataFrame` and create new columns based on existing data." + ] + }, { "cell_type": "markdown", "id": "64495ea9-3773-4c8b-a699-fc8bf1b2cf55", @@ -1288,7 +1307,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.11.8" + "version": "3.12.5" } }, "nbformat": 4, diff --git a/_sources/docs/pandas/02_Pandas_tabular_data.ipynb b/_sources/docs/pandas/02_Pandas_tabular_data.ipynb index 43ba75f0..1868d3da 100644 --- a/_sources/docs/pandas/02_Pandas_tabular_data.ipynb +++ b/_sources/docs/pandas/02_Pandas_tabular_data.ipynb @@ -15,6 +15,24 @@ "# Read and Write Tabular Data" ] }, + { + "cell_type": "markdown", + "id": "9834ddce-1a75-469b-b7b2-c1b47bb174ad", + "metadata": {}, + "source": [ + "```{admonition} Learning Objectives\n", + "\n", + "Questions:\n", + "* How can we read, inspect, and export tabular data using Pandas?\n", + "\n", + "Objectives:\n", + "* Load tabular data from a spreadsheet into a `DataFrame`.\n", + "* Inspect the structure and contents of your dataset.\n", + "* Identify missing data within your dataset.\n", + "* Apply filters to extract specific subsets of data based on conditions.\n", + "* Save and export your dataset to various file formats." + ] + }, { "cell_type": "markdown", "id": "fd7930e4-d137-499b-afed-b112cc278c67", @@ -2341,7 +2359,7 @@ "source": [ "## Key points\n", "\n", - "* Getting data in to pandas from many different file formats or data sources is supported by `read_*` functions.\n", + "* Reading data into Pandas from many different file formats or data sources is supported by `read_*` functions.\n", "\n", "* The `head()`, `tail()`, and `info()` methods are convenient for a first check.\n", "\n", diff --git a/_sources/docs/pandas/02_pandas_tabular_data.ipynb b/_sources/docs/pandas/02_pandas_tabular_data.ipynb index 43ba75f0..1868d3da 100644 --- a/_sources/docs/pandas/02_pandas_tabular_data.ipynb +++ b/_sources/docs/pandas/02_pandas_tabular_data.ipynb @@ -15,6 +15,24 @@ "# Read and Write Tabular Data" ] }, + { + "cell_type": "markdown", + "id": "9834ddce-1a75-469b-b7b2-c1b47bb174ad", + "metadata": {}, + "source": [ + "```{admonition} Learning Objectives\n", + "\n", + "Questions:\n", + "* How can we read, inspect, and export tabular data using Pandas?\n", + "\n", + "Objectives:\n", + "* Load tabular data from a spreadsheet into a `DataFrame`.\n", + "* Inspect the structure and contents of your dataset.\n", + "* Identify missing data within your dataset.\n", + "* Apply filters to extract specific subsets of data based on conditions.\n", + "* Save and export your dataset to various file formats." + ] + }, { "cell_type": "markdown", "id": "fd7930e4-d137-499b-afed-b112cc278c67", @@ -2341,7 +2359,7 @@ "source": [ "## Key points\n", "\n", - "* Getting data in to pandas from many different file formats or data sources is supported by `read_*` functions.\n", + "* Reading data into Pandas from many different file formats or data sources is supported by `read_*` functions.\n", "\n", "* The `head()`, `tail()`, and `info()` methods are convenient for a first check.\n", "\n", diff --git a/_sources/docs/pandas/03_Pandas_subsets.ipynb b/_sources/docs/pandas/03_Pandas_subsets.ipynb index 62208545..38543e54 100644 --- a/_sources/docs/pandas/03_Pandas_subsets.ipynb +++ b/_sources/docs/pandas/03_Pandas_subsets.ipynb @@ -14,6 +14,24 @@ "# Subsets" ] }, + { + "cell_type": "markdown", + "id": "f9ddee47-e8ab-4f68-b283-2e6c71b6aa52", + "metadata": {}, + "source": [ + "```{admonition} Learning Objectives\n", + "\n", + "Questions:\n", + "* How can we select and filter specific columns and rows in a `DataFrame`?\n", + "\n", + "Objectives:\n", + "* Select specific columns from a `DataFrame` using square bracket notation.\n", + "* Use the loc property for label-based indexing in a DataFrame.\n", + "* Use the iloc property for position-based indexing in a DataFrame.\n", + "* Filter rows based on the presence or absence of missing values.\n", + "* Understand the differences and complementary uses of loc and iloc. " + ] + }, { "cell_type": "markdown", "id": "b90cc6fd-2f57-4f94-bff7-cf6b0aace5f5", @@ -2770,22 +2788,6 @@ "titanic.iloc[9:25, 2:6].loc[titanic['Age'] > 35]" ] }, - { - "cell_type": "markdown", - "id": "066d02a8-dfb6-4fbc-913a-c2dab3644ec9", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Summary\n", - "\n", - "Using `.loc[]` and `.iloc[]` allows you to write clearer, more precise code for selecting and manipulating data in Pandas. Whether you are filtering rows based on complex conditions or selecting specific rows and columns simultaneously, these tools offer the flexibility and reliability you need for more advanced data manipulation tasks." - ] - }, { "cell_type": "markdown", "id": "d06d4633-9550-4978-a275-0d6920770a9c", @@ -2813,17 +2815,13 @@ "source": [ "## Key points\n", "\n", - "* **Selecting columns**:\n", - " * Access a single column or multiple columns from a DataFrame using square bracket notation (`[]`).\n", + "* Access a single column or multiple columns from a `DataFrame` using square bracket notation (`[]`).\n", "\n", - "* **Selecting subsets of data**:\n", - " * Use `.loc[]` for label-based indexing and `.iloc[]` for position-based indexing to select specific rows and columns.\n", + "* Use label-based indexing (`.loc[]`) and position-based indexing (`.iloc[]`) to select specific rows and columns.\n", "\n", - "* **Slicing**:\n", - " * Slicing with `.loc[]` is inclusive, while slicing with `.iloc[]` is exclusive.\n", + "* Slicing with `.loc[]` is inclusive, while slicing with `.iloc[]` is exclusive.\n", "\n", - "* **Filtering data**:\n", - " * Filter rows based on conditions using `.loc[]` and `.iloc[]`, and apply additional conditions or select specific columns within the same operation." + "* Filter rows based on conditions and apply additional conditions or select specific columns within the same operation." ] }, { diff --git a/_sources/docs/pandas/03_pandas_subsets.ipynb b/_sources/docs/pandas/03_pandas_subsets.ipynb index 62208545..38543e54 100644 --- a/_sources/docs/pandas/03_pandas_subsets.ipynb +++ b/_sources/docs/pandas/03_pandas_subsets.ipynb @@ -14,6 +14,24 @@ "# Subsets" ] }, + { + "cell_type": "markdown", + "id": "f9ddee47-e8ab-4f68-b283-2e6c71b6aa52", + "metadata": {}, + "source": [ + "```{admonition} Learning Objectives\n", + "\n", + "Questions:\n", + "* How can we select and filter specific columns and rows in a `DataFrame`?\n", + "\n", + "Objectives:\n", + "* Select specific columns from a `DataFrame` using square bracket notation.\n", + "* Use the loc property for label-based indexing in a DataFrame.\n", + "* Use the iloc property for position-based indexing in a DataFrame.\n", + "* Filter rows based on the presence or absence of missing values.\n", + "* Understand the differences and complementary uses of loc and iloc. " + ] + }, { "cell_type": "markdown", "id": "b90cc6fd-2f57-4f94-bff7-cf6b0aace5f5", @@ -2770,22 +2788,6 @@ "titanic.iloc[9:25, 2:6].loc[titanic['Age'] > 35]" ] }, - { - "cell_type": "markdown", - "id": "066d02a8-dfb6-4fbc-913a-c2dab3644ec9", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Summary\n", - "\n", - "Using `.loc[]` and `.iloc[]` allows you to write clearer, more precise code for selecting and manipulating data in Pandas. Whether you are filtering rows based on complex conditions or selecting specific rows and columns simultaneously, these tools offer the flexibility and reliability you need for more advanced data manipulation tasks." - ] - }, { "cell_type": "markdown", "id": "d06d4633-9550-4978-a275-0d6920770a9c", @@ -2813,17 +2815,13 @@ "source": [ "## Key points\n", "\n", - "* **Selecting columns**:\n", - " * Access a single column or multiple columns from a DataFrame using square bracket notation (`[]`).\n", + "* Access a single column or multiple columns from a `DataFrame` using square bracket notation (`[]`).\n", "\n", - "* **Selecting subsets of data**:\n", - " * Use `.loc[]` for label-based indexing and `.iloc[]` for position-based indexing to select specific rows and columns.\n", + "* Use label-based indexing (`.loc[]`) and position-based indexing (`.iloc[]`) to select specific rows and columns.\n", "\n", - "* **Slicing**:\n", - " * Slicing with `.loc[]` is inclusive, while slicing with `.iloc[]` is exclusive.\n", + "* Slicing with `.loc[]` is inclusive, while slicing with `.iloc[]` is exclusive.\n", "\n", - "* **Filtering data**:\n", - " * Filter rows based on conditions using `.loc[]` and `.iloc[]`, and apply additional conditions or select specific columns within the same operation." + "* Filter rows based on conditions and apply additional conditions or select specific columns within the same operation." ] }, { diff --git a/_sources/docs/pandas/04_pandas_summary_statistics.ipynb b/_sources/docs/pandas/04_pandas_summary_statistics.ipynb index b5215f62..9a58f902 100644 --- a/_sources/docs/pandas/04_pandas_summary_statistics.ipynb +++ b/_sources/docs/pandas/04_pandas_summary_statistics.ipynb @@ -8,6 +8,22 @@ "# Summary Statistics" ] }, + { + "cell_type": "markdown", + "id": "8f4c0f2a-e065-494f-acfe-f343801f9a69", + "metadata": {}, + "source": [ + "```{admonition} Learning Objectives\n", + "\n", + "Questions:\n", + "* How can we calculate and analyse summary statistics using Pandas?\n", + "\n", + "Objectives:\n", + "* Use built-in methods for descriptive statistics.\n", + "* Use the split-apply-combind pattern to perform descriptive statistics on groupings of data.\n", + "* Use different count methods on groupings of data." + ] + }, { "cell_type": "markdown", "id": "9ffbfee4-8515-4ccf-9b92-77cc164cb850", @@ -479,7 +495,7 @@ "id": "18813351-2fb9-4201-b69a-9fdd61adef72", "metadata": {}, "source": [ - "Multiple aggregating statistics can easily be calculated for one or more columns at the same time. For this we can use the `describe()` function." + "Multiple descriptive statistics can easily be calculated for one or more columns at the same time. For this we can use the `describe()` method." ] }, { diff --git a/_sources/docs/pandas/05_pandas_plot.ipynb b/_sources/docs/pandas/05_pandas_plot.ipynb index 6f7f8e18..0b8f156a 100644 --- a/_sources/docs/pandas/05_pandas_plot.ipynb +++ b/_sources/docs/pandas/05_pandas_plot.ipynb @@ -2,11 +2,32 @@ "cells": [ { "cell_type": "markdown", - "id": "6eed7165-9b38-4ea1-bf39-85e434a39462", + "id": "1f4c686a-1df8-44cb-bf7e-be6c87f6bfd6", + "metadata": {}, + "source": [ + "# Basic Visualisations in Pandas" + ] + }, + { + "cell_type": "markdown", + "id": "e0108d8c-df58-4f7e-975e-269bac5ef530", "metadata": {}, "source": [ - "# Basic Plotting in Pandas\n", + "```{admonition} Learning Objectives\n", + "\n", + "Questions:\n", + "* How to get started with plotting using Pandas.\n", "\n", + "Objectives:\n", + "* Understand the basics of the `.plot()` syntax.\n", + "* Visualise your data with various plots." + ] + }, + { + "cell_type": "markdown", + "id": "6eed7165-9b38-4ea1-bf39-85e434a39462", + "metadata": {}, + "source": [ "![Plotting in Pandas](images/05_plot_overview.png)" ] }, @@ -307,24 +328,32 @@ }, { "cell_type": "markdown", - "id": "2565eb52-2f21-4432-89a5-f08c68c79521", + "id": "27a1b00b-8b3d-4e47-8df6-bb2627ea8159", "metadata": {}, "source": [ - "## Conclusion" + "___" ] }, { "cell_type": "markdown", - "id": "ebe56032-82ac-4696-b72b-57d51cb9defb", + "id": "05400eb0-7301-4859-ba8b-2e312d592dd6", "metadata": {}, "source": [ - "While plotting with Pandas is often done using the `matplotlib` library, Pandas' `.plot()` method is a versatile tool for quickly generating a wide range of plots directly from your data. Whether you're creating simple line plots, bar charts, or more complex visualisations like scatter plots and histograms, `.plot()` provides an efficient interface for data visualisation. This method simplifies the process of plotting while offering a good level of customisation, making it suitable for both quick exploratory analysis and more polished, presentation-ready graphics." + "## Key points\n", + "\n", + "* Pandas' `.plot()` method is a tool for quickly generating a wide range of plots directly from your data.\n", + "\n", + "* It supports various types of plots, including line plots, bar charts, scatter plots, and histograms.\n", + "\n", + "* The `.plot()` method allows for both quick exploratory analysis and more polished, presentation-ready graphics.\n", + "\n", + "* For more elaborate and detailed plotting, consider using the `matplotlib` library directly." ] }, { "cell_type": "code", "execution_count": null, - "id": "ec3c1a92-5c86-4150-9983-4c6f810c8768", + "id": "4de33b87-d363-4a2b-9414-9e5dd91de951", "metadata": {}, "outputs": [], "source": [] diff --git a/_sources/docs/pandas/getting_started.ipynb b/_sources/docs/pandas/getting_started.ipynb index 4cfff193..293d97f3 100644 --- a/_sources/docs/pandas/getting_started.ipynb +++ b/_sources/docs/pandas/getting_started.ipynb @@ -20,6 +20,34 @@ "# Getting Started with Data Analysis" ] }, + { + "cell_type": "markdown", + "id": "49ab1192-b830-46ec-9213-6e6bc57421e5", + "metadata": {}, + "source": [ + "Pandas is a library for Python, which is tailored to enable coders to handle tabular data (and is used widely in conjunction with other Python libraries including the machine-learning package, SciKitLearn, and the mathematics-oriented Numpy). Pandas' tabular data take the form of DataFrames: Python's version of an Excel spreadsheet. This object and the various methods associated with it will be the central focus.\n", + "\n", + "Building on the knowledge you have accumulated in the introductory courses, Getting Started with Data Analysis will teach you how to import, analyse, and visualise data in Pandas. For those that are interested and have some experience coding in Python, check out our Python for Absolute Beginners [Part 1](../101/part1) and [Part 2](../101/part2) materials. If these seem manageable, please feel free to hop right into this class." + ] + }, + { + "cell_type": "markdown", + "id": "b3a4c761-da44-4960-aa59-e43bb36a33ab", + "metadata": {}, + "source": [ + "## Download the Titanic data" + ] + }, + { + "cell_type": "markdown", + "id": "7f646509-25e6-45ea-bc09-39c755d2c8de", + "metadata": {}, + "source": [ + "For much of this course, we will be working with the Titanic dataset. The full dataset can be found on [Kaggle](https://www.kaggle.com/c/titanic/data), but we will only be using the training data, which we have made available [here](data/titanic.csv).\n", + "\n", + "To follow the exercises and use the code exactly as written below, you will need to download the data and place it in a folder called 'data' in the same directory as your Jupyter notebook. In other words, the folder where your notebook is located should contain a subfolder named 'data', which holds the file 'titanic.csv'." + ] + }, { "cell_type": "markdown", "id": "4a699fca-a13b-4315-97bc-69906bd6c422", diff --git a/_sources/docs/pandas/xx_03_pandas_subsets.ipynb b/_sources/docs/pandas/xx_03_pandas_subsets.ipynb deleted file mode 100644 index 0494daca..00000000 --- a/_sources/docs/pandas/xx_03_pandas_subsets.ipynb +++ /dev/null @@ -1,2356 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "513cfe15-50b1-4385-a0a9-16b337d970bc", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "# Out: Subsets" - ] - }, - { - "cell_type": "markdown", - "id": "b90cc6fd-2f57-4f94-bff7-cf6b0aace5f5", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Import Pandas" - ] - }, - { - "cell_type": "markdown", - "id": "75fa3e37-d901-4cdc-8822-5b6b0102ce4e", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "remove-cell" - ] - }, - "source": [ - "Aliasing pandas as `pd` is a widely adopted convention that simplifies the syntax for accessing its functionalities.\\\n", - "After this statement, you can use `pd` to access all the functionalities provided by the pandas library." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "765b4040-4b8a-420d-bad5-219654bc6174", - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [ - "# This line imports the pandas library and aliases it as 'pd'.\n", - "\n", - "import pandas as pd" - ] - }, - { - "cell_type": "markdown", - "id": "4a72659e-005b-4390-a8fe-4dd61b356945", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "b4f7a487-146c-4573-904e-45601338891f", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Creating a `DataFrame` from a CSV file" - ] - }, - { - "cell_type": "markdown", - "id": "f1e434ec-fdb0-4c8a-89a4-7281de89308f", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "The `pd.read_csv()` function is used to read the data from the file 'data/titanic.csv'." - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "fe1c7a91-0caf-4eae-bf55-0938bcdaa851", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [ - "# Load the Titanic dataset from a CSV file into a DataFrame named 'titanic'.\n", - "\n", - "titanic = pd.read_csv('data/titanic.csv')" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "id": "9d5a2159-bb3b-4a20-94be-21ea37755071", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
.......................................
88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
88788811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.4500NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
\n", - "

891 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " PassengerId Survived Pclass \\\n", - "0 1 0 3 \n", - "1 2 1 1 \n", - "2 3 1 3 \n", - "3 4 1 1 \n", - "4 5 0 3 \n", - ".. ... ... ... \n", - "886 887 0 2 \n", - "887 888 1 1 \n", - "888 889 0 3 \n", - "889 890 1 1 \n", - "890 891 0 3 \n", - "\n", - " Name Sex Age SibSp \\\n", - "0 Braund, Mr. Owen Harris male 22.0 1 \n", - "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", - "2 Heikkinen, Miss. Laina female 26.0 0 \n", - "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", - "4 Allen, Mr. William Henry male 35.0 0 \n", - ".. ... ... ... ... \n", - "886 Montvila, Rev. Juozas male 27.0 0 \n", - "887 Graham, Miss. Margaret Edith female 19.0 0 \n", - "888 Johnston, Miss. Catherine Helen \"Carrie\" female NaN 1 \n", - "889 Behr, Mr. Karl Howell male 26.0 0 \n", - "890 Dooley, Mr. Patrick male 32.0 0 \n", - "\n", - " Parch Ticket Fare Cabin Embarked \n", - "0 0 A/5 21171 7.2500 NaN S \n", - "1 0 PC 17599 71.2833 C85 C \n", - "2 0 STON/O2. 3101282 7.9250 NaN S \n", - "3 0 113803 53.1000 C123 S \n", - "4 0 373450 8.0500 NaN S \n", - ".. ... ... ... ... ... \n", - "886 0 211536 13.0000 NaN S \n", - "887 0 112053 30.0000 B42 S \n", - "888 2 W./C. 6607 23.4500 NaN S \n", - "889 0 111369 30.0000 C148 C \n", - "890 0 370376 7.7500 NaN Q \n", - "\n", - "[891 rows x 12 columns]" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Display the DataFrame 'titanic'.\n", - "\n", - "titanic" - ] - }, - { - "cell_type": "markdown", - "id": "13331c76-ef8d-4881-9229-b6dbf6a34447", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "688e5d6e-f20e-41ac-b44f-aaea410cd399", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Selecting specific columns\n", - "\n", - "![Selecting specific columns from a DataFrame](images/03_subset_columns.svg)" - ] - }, - { - "cell_type": "markdown", - "id": "13a500a8-9996-4478-8b37-496110b587d1", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "Access the 'Age' column from the `DataFrame` 'titanic' to return a `Series` object containing all the data in the 'Age' column:" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "6752e1f0-6227-4128-b2f5-323c429ffe5c", - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "0 22.0\n", - "1 38.0\n", - "2 26.0\n", - "3 35.0\n", - "4 35.0\n", - " ... \n", - "886 27.0\n", - "887 19.0\n", - "888 NaN\n", - "889 26.0\n", - "890 32.0\n", - "Name: Age, Length: 891, dtype: float64" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "titanic['Age']" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "0e3d6cdf-0b96-489c-9271-b0dcf887682d", - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "pandas.core.series.Series" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Check the type of the 'Age' column in 'titanic' using the 'type()' function.\n", - "\n", - "type(titanic['Age'])" - ] - }, - { - "cell_type": "markdown", - "id": "f2c9d264-6190-49dd-96c5-ea5ffb177a41", - "metadata": {}, - "source": [ - "Use the `shape` attribute to determine the dimensions of the `Series`.\\\n", - "It returns a tuple representing the number of rows and columns (rows, columns)." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "ddcdfad9-cfb3-413c-bf2a-f2b485ec0d50", - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(891,)" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "titanic['Age'].shape" - ] - }, - { - "cell_type": "markdown", - "id": "1b48c4ac-45cf-449b-bcf1-da1ef4408e41", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "54af87e3-2151-4b56-9cca-6fb72cada392", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Calling multiple `Series`" - ] - }, - { - "cell_type": "markdown", - "id": "14237564-b732-47a6-a52d-c2af0c00694a", - "metadata": {}, - "source": [ - "Select columns 'Age' and 'Sex' from the 'titanic' `DataFrame` using double square brackets:" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "dc8709c5-0b04-4869-8668-cc5144571fd5", - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
AgeSex
022.0male
138.0female
226.0female
335.0female
435.0male
.........
88627.0male
88719.0female
888NaNfemale
88926.0male
89032.0male
\n", - "

891 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " Age Sex\n", - "0 22.0 male\n", - "1 38.0 female\n", - "2 26.0 female\n", - "3 35.0 female\n", - "4 35.0 male\n", - ".. ... ...\n", - "886 27.0 male\n", - "887 19.0 female\n", - "888 NaN female\n", - "889 26.0 male\n", - "890 32.0 male\n", - "\n", - "[891 rows x 2 columns]" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Select the columns 'Age' and 'Sex' from the 'titanic' DataFrame.\n", - "\n", - "titanic[['Age', 'Sex']]" - ] - }, - { - "cell_type": "markdown", - "id": "2f8e7d7d-4ae1-4542-8caf-31787d7d8081", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "```{note}\n", - "The inner square brackets define a Python `list` with column names, whereas the outer square brackets are used to select the data from a pandas `DataFrame` as seen in the previous example." - ] - }, - { - "cell_type": "markdown", - "id": "8190374b-8681-48c0-a0cc-028dd9e1f936", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "Select columns 'Age' and 'Sex' from the 'titanic' `DataFrame` using double square brackets, and then apply the `type()` function to the resulting `DataFrame` subset:" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "41856f83-9f98-4b7a-9800-4acf1c222588", - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "pandas.core.frame.DataFrame" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Use the 'type()' function to determine the data type of the DataFrame subset.\n", - "\n", - "type(titanic[['Age', 'Sex']])" - ] - }, - { - "cell_type": "markdown", - "id": "e6c073f3-f58f-462c-98f1-d027cb0dfc41", - "metadata": {}, - "source": [ - "Select columns 'Age' and 'Sex' from the 'titanic' `DataFrame` using double square brackets, and then apply the `shape` attribute to the resulting `DataFrame` subset:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "b0388ea7-0e3e-4ebe-b9e7-dad3e8271928", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "(891, 2)" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Use the 'shape' attribute to determine the dimensions of the DataFrame subset.\n", - "\n", - "titanic[['Age', 'Sex']].shape" - ] - }, - { - "cell_type": "markdown", - "id": "6cb6bcc8-8a2a-428f-9102-394ee6c333d3", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "961bdfdf-11b0-474a-bd74-4500fad73448", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Filtering rows based on conditional expressions\n", - "\n", - "![Filtering specific rows from a DataFrame](images/03_subset_rows.svg)" - ] - }, - { - "cell_type": "markdown", - "id": "7ece850f-2344-49d6-8dfb-6fed8c58f18c", - "metadata": {}, - "source": [ - "We can use filtering to extract subsets of a `DataFrame`.\n", - "\n", - "To select rows based on a conditional expression, use a condition inside the selection brackets `[]`.\\\n", - "The condition inside the selection brackets checks for rows where the specified column's values exceed a certain threshold.\n", - "\n", - "The code below returns a subset of the `DataFrame` containing only the rows where the 'Age' column has a value greater than 35." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "60ff0a11-3cbe-48e0-8ee0-28fd8d492d45", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
6701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S
111211Bonnell, Miss. Elizabethfemale58.00011378326.5500C103S
131403Andersson, Mr. Anders Johanmale39.01534708231.2750NaNS
151612Hewlett, Mrs. (Mary D Kingcome)female55.00024870616.0000NaNS
.......................................
86586612Bystrom, Mrs. (Karolina)female42.00023685213.0000NaNS
87187211Beckwith, Mrs. Richard Leonard (Sallie Monypeny)female47.0111175152.5542D35S
87387403Vander Cruyssen, Mr. Victormale47.0003457659.0000NaNS
87988011Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)female56.0011176783.1583C50C
88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.1250NaNQ
\n", - "

217 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " PassengerId Survived Pclass \\\n", - "1 2 1 1 \n", - "6 7 0 1 \n", - "11 12 1 1 \n", - "13 14 0 3 \n", - "15 16 1 2 \n", - ".. ... ... ... \n", - "865 866 1 2 \n", - "871 872 1 1 \n", - "873 874 0 3 \n", - "879 880 1 1 \n", - "885 886 0 3 \n", - "\n", - " Name Sex Age SibSp \\\n", - "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", - "6 McCarthy, Mr. Timothy J male 54.0 0 \n", - "11 Bonnell, Miss. Elizabeth female 58.0 0 \n", - "13 Andersson, Mr. Anders Johan male 39.0 1 \n", - "15 Hewlett, Mrs. (Mary D Kingcome) female 55.0 0 \n", - ".. ... ... ... ... \n", - "865 Bystrom, Mrs. (Karolina) female 42.0 0 \n", - "871 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) female 47.0 1 \n", - "873 Vander Cruyssen, Mr. Victor male 47.0 0 \n", - "879 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) female 56.0 0 \n", - "885 Rice, Mrs. William (Margaret Norton) female 39.0 0 \n", - "\n", - " Parch Ticket Fare Cabin Embarked \n", - "1 0 PC 17599 71.2833 C85 C \n", - "6 0 17463 51.8625 E46 S \n", - "11 0 113783 26.5500 C103 S \n", - "13 5 347082 31.2750 NaN S \n", - "15 0 248706 16.0000 NaN S \n", - ".. ... ... ... ... ... \n", - "865 0 236852 13.0000 NaN S \n", - "871 1 11751 52.5542 D35 S \n", - "873 0 345765 9.0000 NaN S \n", - "879 1 11767 83.1583 C50 C \n", - "885 5 382652 29.1250 NaN Q \n", - "\n", - "[217 rows x 12 columns]" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Filter rows in the 'titanic' DataFrame where the 'Age' column is greater than 35.\n", - "\n", - "titanic[titanic['Age'] > 35]" - ] - }, - { - "cell_type": "markdown", - "id": "38ac84cf-9f52-4c01-bca9-e46fb87d66c1", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "What happens inside the square brackets is that Pandas evaluates the condition 'titanic['Age'] > 35' element-wise, resulting in a boolean `Series` where `True` indicates that the corresponding passenger's age is greater than 35.\n", - "\n", - "This is called a boolean mask." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "13936ecd-9c28-45bd-9edb-e4727a81d081", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "0 False\n", - "1 True\n", - "2 False\n", - "3 False\n", - "4 False\n", - " ... \n", - "886 False\n", - "887 False\n", - "888 False\n", - "889 False\n", - "890 False\n", - "Name: Age, Length: 891, dtype: bool" - ] - }, - "execution_count": 11, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Create a boolean mask to filter rows where the age of passengers is greater than 35.\n", - "\n", - "titanic['Age'] > 35" - ] - }, - { - "cell_type": "markdown", - "id": "39b84234-a6f9-48c8-82a6-e9515d0afa7e", - "metadata": {}, - "source": [ - "We can also use the `isin()` method to create a boolean mask, where `True` indicates that the corresponding 'Pclass' value is present in the specified list '[2, 3]'." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "7dad5185-69b3-41ce-9de0-626ea02ef6b4", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
5603Moran, Mr. JamesmaleNaN003308778.4583NaNQ
7803Palsson, Master. Gosta Leonardmale2.03134990921.0750NaNS
.......................................
88488503Sutehall, Mr. Henry Jrmale25.000SOTON/OQ 3920767.0500NaNS
88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.1250NaNQ
88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.4500NaNS
89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
\n", - "

675 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " PassengerId Survived Pclass Name \\\n", - "0 1 0 3 Braund, Mr. Owen Harris \n", - "2 3 1 3 Heikkinen, Miss. Laina \n", - "4 5 0 3 Allen, Mr. William Henry \n", - "5 6 0 3 Moran, Mr. James \n", - "7 8 0 3 Palsson, Master. Gosta Leonard \n", - ".. ... ... ... ... \n", - "884 885 0 3 Sutehall, Mr. Henry Jr \n", - "885 886 0 3 Rice, Mrs. William (Margaret Norton) \n", - "886 887 0 2 Montvila, Rev. Juozas \n", - "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", - "890 891 0 3 Dooley, Mr. Patrick \n", - "\n", - " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", - "0 male 22.0 1 0 A/5 21171 7.2500 NaN S \n", - "2 female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S \n", - "4 male 35.0 0 0 373450 8.0500 NaN S \n", - "5 male NaN 0 0 330877 8.4583 NaN Q \n", - "7 male 2.0 3 1 349909 21.0750 NaN S \n", - ".. ... ... ... ... ... ... ... ... \n", - "884 male 25.0 0 0 SOTON/OQ 392076 7.0500 NaN S \n", - "885 female 39.0 0 5 382652 29.1250 NaN Q \n", - "886 male 27.0 0 0 211536 13.0000 NaN S \n", - "888 female NaN 1 2 W./C. 6607 23.4500 NaN S \n", - "890 male 32.0 0 0 370376 7.7500 NaN Q \n", - "\n", - "[675 rows x 12 columns]" - ] - }, - "execution_count": 12, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Filter rows in the 'titanic' DataFrame where the 'Pclass' column values are either 2 or 3.\n", - "\n", - "titanic[titanic['Pclass'].isin([2, 3])]" - ] - }, - { - "cell_type": "markdown", - "id": "c3762ceb-ae60-4877-a117-03260cbe3c7a", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "```{note}\n", - "\n", - "The above is equivalent to filtering by rows for which the class is either 2 or 3 and combining the two statements with an `|` (OR) operator.\n", - "\n", - "When combining multiple conditional statements, each condition must be surrounded by parentheses `()`.\\\n", - "Moreover, you can not use `or`/`and` but need to use the OR operator `|` and the AND operator `&`." - ] - }, - { - "cell_type": "markdown", - "id": "e29c3892-7669-4632-91ed-e42c62cd2a5a", - "metadata": {}, - "source": [ - "The following code uses boolean indexing with logical OR (`|`) to create a mask, where `True` indicates that the corresponding 'Pclass' value is either 2 or 3." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "f1d37a3e-c4c1-4687-99b1-6366fb1b83bb", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
5603Moran, Mr. JamesmaleNaN003308778.4583NaNQ
7803Palsson, Master. Gosta Leonardmale2.03134990921.0750NaNS
.......................................
88488503Sutehall, Mr. Henry Jrmale25.000SOTON/OQ 3920767.0500NaNS
88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.1250NaNQ
88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.4500NaNS
89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
\n", - "

675 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " PassengerId Survived Pclass Name \\\n", - "0 1 0 3 Braund, Mr. Owen Harris \n", - "2 3 1 3 Heikkinen, Miss. Laina \n", - "4 5 0 3 Allen, Mr. William Henry \n", - "5 6 0 3 Moran, Mr. James \n", - "7 8 0 3 Palsson, Master. Gosta Leonard \n", - ".. ... ... ... ... \n", - "884 885 0 3 Sutehall, Mr. Henry Jr \n", - "885 886 0 3 Rice, Mrs. William (Margaret Norton) \n", - "886 887 0 2 Montvila, Rev. Juozas \n", - "888 889 0 3 Johnston, Miss. Catherine Helen \"Carrie\" \n", - "890 891 0 3 Dooley, Mr. Patrick \n", - "\n", - " Sex Age SibSp Parch Ticket Fare Cabin Embarked \n", - "0 male 22.0 1 0 A/5 21171 7.2500 NaN S \n", - "2 female 26.0 0 0 STON/O2. 3101282 7.9250 NaN S \n", - "4 male 35.0 0 0 373450 8.0500 NaN S \n", - "5 male NaN 0 0 330877 8.4583 NaN Q \n", - "7 male 2.0 3 1 349909 21.0750 NaN S \n", - ".. ... ... ... ... ... ... ... ... \n", - "884 male 25.0 0 0 SOTON/OQ 392076 7.0500 NaN S \n", - "885 female 39.0 0 5 382652 29.1250 NaN Q \n", - "886 male 27.0 0 0 211536 13.0000 NaN S \n", - "888 female NaN 1 2 W./C. 6607 23.4500 NaN S \n", - "890 male 32.0 0 0 370376 7.7500 NaN Q \n", - "\n", - "[675 rows x 12 columns]" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Filter rows in the 'titanic' DataFrame where the 'Pclass' column values are either 2 or 3.\n", - "\n", - "titanic[(titanic['Pclass'] == 2) | (titanic['Pclass'] == 3)]" - ] - }, - { - "cell_type": "markdown", - "id": "47842350-bee8-4683-91f0-da8905771656", - "metadata": {}, - "source": [ - "Remember that the `notna()` conditional function returns a `True` for each row where the values are not a 'null' value (`NaN`).\\\n", - "As such, this can be combined with the selection brackets `[]` to filter the data table." - ] - }, - { - "cell_type": "markdown", - "id": "b44aa3b4-b1c6-4eae-a453-1b2f0a9e8df0", - "metadata": {}, - "source": [ - "Filter rows in the 'titanic' `DataFrame` where 'Embarked' values are not null (not `NaN`).\\\n", - "`notna()` returns `True` for non-null values, allowing us to select rows with valid embarkation data." - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "319db576-5646-4549-83dc-67d4c1b9c2c7", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
.......................................
88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
88788811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42S
88888903Johnston, Miss. Catherine Helen \"Carrie\"femaleNaN12W./C. 660723.4500NaNS
88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
\n", - "

889 rows × 12 columns

\n", - "
" - ], - "text/plain": [ - " PassengerId Survived Pclass \\\n", - "0 1 0 3 \n", - "1 2 1 1 \n", - "2 3 1 3 \n", - "3 4 1 1 \n", - "4 5 0 3 \n", - ".. ... ... ... \n", - "886 887 0 2 \n", - "887 888 1 1 \n", - "888 889 0 3 \n", - "889 890 1 1 \n", - "890 891 0 3 \n", - "\n", - " Name Sex Age SibSp \\\n", - "0 Braund, Mr. Owen Harris male 22.0 1 \n", - "1 Cumings, Mrs. John Bradley (Florence Briggs Th... female 38.0 1 \n", - "2 Heikkinen, Miss. Laina female 26.0 0 \n", - "3 Futrelle, Mrs. Jacques Heath (Lily May Peel) female 35.0 1 \n", - "4 Allen, Mr. William Henry male 35.0 0 \n", - ".. ... ... ... ... \n", - "886 Montvila, Rev. Juozas male 27.0 0 \n", - "887 Graham, Miss. Margaret Edith female 19.0 0 \n", - "888 Johnston, Miss. Catherine Helen \"Carrie\" female NaN 1 \n", - "889 Behr, Mr. Karl Howell male 26.0 0 \n", - "890 Dooley, Mr. Patrick male 32.0 0 \n", - "\n", - " Parch Ticket Fare Cabin Embarked \n", - "0 0 A/5 21171 7.2500 NaN S \n", - "1 0 PC 17599 71.2833 C85 C \n", - "2 0 STON/O2. 3101282 7.9250 NaN S \n", - "3 0 113803 53.1000 C123 S \n", - "4 0 373450 8.0500 NaN S \n", - ".. ... ... ... ... ... \n", - "886 0 211536 13.0000 NaN S \n", - "887 0 112053 30.0000 B42 S \n", - "888 2 W./C. 6607 23.4500 NaN S \n", - "889 0 111369 30.0000 C148 C \n", - "890 0 370376 7.7500 NaN Q \n", - "\n", - "[889 rows x 12 columns]" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "titanic[titanic['Embarked'].notna()]" - ] - }, - { - "cell_type": "markdown", - "id": "b6f2b591-dc44-4738-af53-f7c154515170", - "metadata": {}, - "source": [ - "We can compare the number of extracted rows with the number from the original `DataFrame`:" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "id": "cb13a80f-3c2d-4e4f-bdba-d133186b6841", - "metadata": { - "editable": true, - "scrolled": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\n", - "RangeIndex: 891 entries, 0 to 890\n", - "Data columns (total 12 columns):\n", - " # Column Non-Null Count Dtype \n", - "--- ------ -------------- ----- \n", - " 0 PassengerId 891 non-null int64 \n", - " 1 Survived 891 non-null int64 \n", - " 2 Pclass 891 non-null int64 \n", - " 3 Name 891 non-null object \n", - " 4 Sex 891 non-null object \n", - " 5 Age 714 non-null float64\n", - " 6 SibSp 891 non-null int64 \n", - " 7 Parch 891 non-null int64 \n", - " 8 Ticket 891 non-null object \n", - " 9 Fare 891 non-null float64\n", - " 10 Cabin 204 non-null object \n", - " 11 Embarked 889 non-null object \n", - "dtypes: float64(2), int64(5), object(5)\n", - "memory usage: 83.7+ KB\n" - ] - } - ], - "source": [ - "titanic.info()" - ] - }, - { - "cell_type": "markdown", - "id": "5cdf5b53-26bb-45ec-bfb9-cb7d7a351c31", - "metadata": {}, - "source": [ - "Comparing the two number of rows (889 and 891) tells us, that two rows are missing embarkation data." - ] - }, - { - "cell_type": "markdown", - "id": "c50b13ad-3a6a-4162-ac04-fc0aa86da086", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "e3975713-1cbe-4c43-a97a-14c6d6b18554", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Selecting rows and columns\n", - "\n", - "![Selecting specific rows and columns from a DataFrame](images/03_subset_columns_rows.svg)" - ] - }, - { - "cell_type": "markdown", - "id": "55aa6a2d-a5bb-42c9-84fa-ab55160ccf39", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "The following code uses boolean indexing to first filter rows where the age is greater than 35, and then selects specific columns 'Name' and 'Pclass' using double square brackets." - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "id": "8fe0feca-1a72-4596-a9a7-d9e30d8fed0f", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NamePclass
1Cumings, Mrs. John Bradley (Florence Briggs Th...1
6McCarthy, Mr. Timothy J1
11Bonnell, Miss. Elizabeth1
13Andersson, Mr. Anders Johan3
15Hewlett, Mrs. (Mary D Kingcome)2
.........
865Bystrom, Mrs. (Karolina)2
871Beckwith, Mrs. Richard Leonard (Sallie Monypeny)1
873Vander Cruyssen, Mr. Victor3
879Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)1
885Rice, Mrs. William (Margaret Norton)3
\n", - "

217 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " Name Pclass\n", - "1 Cumings, Mrs. John Bradley (Florence Briggs Th... 1\n", - "6 McCarthy, Mr. Timothy J 1\n", - "11 Bonnell, Miss. Elizabeth 1\n", - "13 Andersson, Mr. Anders Johan 3\n", - "15 Hewlett, Mrs. (Mary D Kingcome) 2\n", - ".. ... ...\n", - "865 Bystrom, Mrs. (Karolina) 2\n", - "871 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) 1\n", - "873 Vander Cruyssen, Mr. Victor 3\n", - "879 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) 1\n", - "885 Rice, Mrs. William (Margaret Norton) 3\n", - "\n", - "[217 rows x 2 columns]" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Filter rows in the 'titanic' DataFrame where the age is greater than 35,\n", - "# then select only the 'Name' and 'Pclass' columns for these filtered rows.\n", - "\n", - "titanic[titanic['Age'] > 35][['Name', 'Pclass']]" - ] - }, - { - "cell_type": "markdown", - "id": "066d02a8-dfb6-4fbc-913a-c2dab3644ec9", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "```{admonition} A note on square bracket indexing []\n", - "Square bracket indexing (`[]`) is a versatile method for accessing data in Pandas DataFrames, but there are certain tasks that it cannot perform as efficiently or directly compared to `loc` and `iloc`. Here are a few limitations of square bracket indexing in comparison to `loc` and `iloc`:\n", - "\n", - "1. **Positional Selection**: When the selection is purely positional (selecting the first five rows, or columns 2 to 4), `iloc` is the most straightforward tool for the job.\n", - "\n", - "2. **Inclusive Slicing:** Square bracket slicing excludes the end point, requiring adjustment of slice endpoints. Conversely, `loc` allows for inclusive label-based slicing, simplifying the specification of row and column ranges.\n", - "\n", - "3. **Dealing with Non-Integer Labels:** Square brackets may falter with non-integer labels or custom indices due to potential ambiguities, particularly when index labels might be confused with column names. `loc` ensures robust label-based selection, irrespective of label data type.\n", - "\n", - "4. **Efficiency in Complex Selections:** For large datasets or intricate selection tasks, `loc` and `iloc` may provide enhanced performance due to their optimizations for label and integer indexing, respectively. They offer a more specialized approach for accessing and manipulating `DataFrame` data, particularly in complex scenarios.\n", - "\n", - "We have attached a separate notebook that introduces `loc` and `iloc`, two properties of pandas `DataFrame` and `Series` objects that provide methods for indexing. \n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "d06d4633-9550-4978-a275-0d6920770a9c", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "4114093e-a6fd-40f0-ac86-d0b2493f9682", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Key points\n", - "\n", - "* When selecting subsets of data, square brackets `[]` are used.\n", - "\n", - "* Inside these square brackets, you can use\n", - " \n", - " * a single column/row label\n", - " \n", - " * a list of column/row labels\n", - " \n", - " * a slice of labels\n", - " \n", - " * a conditional expression" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "95ec0280-28be-43f5-9c20-5db2f795bf04", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/_sources/docs/pandas/xx_pandas_loc_iloc.ipynb b/_sources/docs/pandas/xx_pandas_loc_iloc.ipynb deleted file mode 100644 index 69eb5fc5..00000000 --- a/_sources/docs/pandas/xx_pandas_loc_iloc.ipynb +++ /dev/null @@ -1,1152 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "id": "655cdffb-87eb-4972-8863-e4476e85c173", - "metadata": {}, - "source": [ - "# Out: `loc` and `iloc`" - ] - }, - { - "cell_type": "markdown", - "id": "8cc0a068-ce14-4fca-b840-0bd6692c9dfe", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "`loc` and `iloc` in Pandas are technically properties that return a specialized indexer object. These indexer objects allow for label-based (`loc`) and integer-based (`iloc`) indexing. Although they behave similarly to methods in that you use them to perform actions (i.e., selecting or slicing data), they are properties because they return an indexing object rather than directly executing a function.\n", - "\n", - "When you access `loc` or `iloc` on a `DataFrame`, what you are getting is not a simple value but an object that has its own methods and behaviors, specifically designed to handle indexing operations. This design allows for the concise and powerful data selection syntax that Pandas is known for." - ] - }, - { - "cell_type": "markdown", - "id": "6d37b77f-2a95-434b-9148-400d97a7c430", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "851e86b0-8cff-4209-96ba-e28acea7ef61", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "```{admonition} When to use loc or iloc\n", - "\n", - "1. **Positional Selection**: When the selection is purely positional (selecting the first five rows, or columns 2 to 4), `iloc` is the most straightforward tool for the job.\n", - "\n", - "2. **Inclusive Slicing:** `loc` allows for inclusive label-based slicing, simplifying the specification of row and column ranges.\n", - "\n", - "3. **Label-based Complex Indexing**: For complex indexing scenarios where you need to select rows and columns based on their labels, `loc` is indispensable. It allows for intuitive and concise syntax that boolean masks cannot provide alone.\n", - "\n", - "4. **Efficiency and Readability**: In cases where using a boolean mask leads to verbose or inefficient code, `loc` or `iloc` might offer a more elegant and performant solution. \n", - "\n", - "In summary, while boolean masks are powerful for filtering rows based on conditions, `loc` and `iloc` are essential for a wide range of other data selection tasks, particularly those involving specific column selection, positional indexing, and complex indexing scenarios that go beyond what boolean masks can achieve on their own.\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "fcb92e5d-1ba5-4f89-8bda-fe4c84a9b780", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Import Pandas" - ] - }, - { - "cell_type": "markdown", - "id": "38e3107d-0713-4ae4-82d8-0a58aed90d54", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "remove-cell" - ] - }, - "source": [ - "Aliasing pandas as `pd` is a widely adopted convention that simplifies the syntax for accessing its functionalities.\\\n", - "After this statement, you can use `pd` to access all the functionalities provided by the pandas library." - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "853078ad-f657-4009-8e2c-2c7e2b53b963", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [ - "# This line imports the pandas library and aliases it as 'pd'.\n", - "\n", - "import pandas as pd" - ] - }, - { - "cell_type": "markdown", - "id": "67ec2348-9bd6-45a5-b917-20ec9044a6d7", - "metadata": {}, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "469da173-27f8-417a-824d-e28723e4e030", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Creating a `DataFrame` from a CSV file" - ] - }, - { - "cell_type": "markdown", - "id": "5b0b57e6-7aea-48d6-9939-1c2b54ac690a", - "metadata": {}, - "source": [ - "The `pd.read_csv()` function is used to read the data from the file 'data/titanic.csv'." - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "id": "71424851-2d07-4d8f-bf2a-9fa07113cf54", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [ - "# Load the Titanic dataset from a CSV file into a DataFrame named 'titanic'.\n", - "\n", - "titanic = pd.read_csv('data/titanic.csv')" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "id": "d89fefaf-167f-484e-8f0b-ec3bb08515a5", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "ename": "NameError", - "evalue": "name 'titanic' is not defined", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[1], line 3\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Display the DataFrame 'titanic'.\u001b[39;00m\n\u001b[0;32m----> 3\u001b[0m \u001b[43mtitanic\u001b[49m\n", - "\u001b[0;31mNameError\u001b[0m: name 'titanic' is not defined" - ] - } - ], - "source": [ - "# Display the DataFrame 'titanic'.\n", - "\n", - "titanic" - ] - }, - { - "cell_type": "markdown", - "id": "4fc90fb4-ac30-40ed-bf40-7d0e437dc413", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "9dfb9de9-9d32-433f-9cb5-90932b45c26d", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Selecting rows and columns using `loc` and `iloc`\n", - "\n", - "![How to select specific rows and columns from a DataFrame](images/03_subset_columns_rows.svg)" - ] - }, - { - "cell_type": "markdown", - "id": "11671637-00a4-42e2-b59d-7cc05a4cb479", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "We have seen how we can filter rows in the titanic `DataFrame`.\n", - "\n", - "The code below uses boolean indexing to first filter rows where the age is greater than 35, and then selects specific columns 'Name' and 'Pclass' using double square brackets.\n", - "\n", - "* Filter rows in the 'titanic' `DataFrame` where the age is greater than 35.\n", - "* Then select only the 'Name' and 'Pclass' columns for these filtered rows. " - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "id": "1fb3bd0e-41ba-4a7f-8945-3a715ddc0a0c", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NamePclass
1Cumings, Mrs. John Bradley (Florence Briggs Th...1
6McCarthy, Mr. Timothy J1
11Bonnell, Miss. Elizabeth1
13Andersson, Mr. Anders Johan3
15Hewlett, Mrs. (Mary D Kingcome)2
.........
865Bystrom, Mrs. (Karolina)2
871Beckwith, Mrs. Richard Leonard (Sallie Monypeny)1
873Vander Cruyssen, Mr. Victor3
879Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)1
885Rice, Mrs. William (Margaret Norton)3
\n", - "

217 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " Name Pclass\n", - "1 Cumings, Mrs. John Bradley (Florence Briggs Th... 1\n", - "6 McCarthy, Mr. Timothy J 1\n", - "11 Bonnell, Miss. Elizabeth 1\n", - "13 Andersson, Mr. Anders Johan 3\n", - "15 Hewlett, Mrs. (Mary D Kingcome) 2\n", - ".. ... ...\n", - "865 Bystrom, Mrs. (Karolina) 2\n", - "871 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) 1\n", - "873 Vander Cruyssen, Mr. Victor 3\n", - "879 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) 1\n", - "885 Rice, Mrs. William (Margaret Norton) 3\n", - "\n", - "[217 rows x 2 columns]" - ] - }, - "execution_count": 21, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "titanic[titanic['Age'] > 35][['Name', 'Pclass']]" - ] - }, - { - "cell_type": "markdown", - "id": "f7d54f6b-c119-417d-928a-20d5bb056688", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "We can perform the same filtering using label-based indexing: `loc`.\n", - "\n", - "The following code provides a more explicit way of selecting rows and columns based on labels, where:\n", - "\n", - "* The first argument specifies the row selection condition ('Age' > 35).\n", - "* The second argument specifies the column selection ('Name' and 'Pclass')." - ] - }, - { - "cell_type": "code", - "execution_count": 31, - "id": "d1a4f552-10bf-424a-9498-3ece3ccc93a5", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
NamePclass
1Cumings, Mrs. John Bradley (Florence Briggs Th...1
6McCarthy, Mr. Timothy J1
11Bonnell, Miss. Elizabeth1
13Andersson, Mr. Anders Johan3
15Hewlett, Mrs. (Mary D Kingcome)2
.........
865Bystrom, Mrs. (Karolina)2
871Beckwith, Mrs. Richard Leonard (Sallie Monypeny)1
873Vander Cruyssen, Mr. Victor3
879Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)1
885Rice, Mrs. William (Margaret Norton)3
\n", - "

217 rows × 2 columns

\n", - "
" - ], - "text/plain": [ - " Name Pclass\n", - "1 Cumings, Mrs. John Bradley (Florence Briggs Th... 1\n", - "6 McCarthy, Mr. Timothy J 1\n", - "11 Bonnell, Miss. Elizabeth 1\n", - "13 Andersson, Mr. Anders Johan 3\n", - "15 Hewlett, Mrs. (Mary D Kingcome) 2\n", - ".. ... ...\n", - "865 Bystrom, Mrs. (Karolina) 2\n", - "871 Beckwith, Mrs. Richard Leonard (Sallie Monypeny) 1\n", - "873 Vander Cruyssen, Mr. Victor 3\n", - "879 Potter, Mrs. Thomas Jr (Lily Alexenia Wilson) 1\n", - "885 Rice, Mrs. William (Margaret Norton) 3\n", - "\n", - "[217 rows x 2 columns]" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "titanic.loc[titanic['Age'] > 35, ['Name', 'Pclass']]" - ] - }, - { - "cell_type": "markdown", - "id": "213a9c53-000c-44a4-bbbf-dba624fca30c", - "metadata": { - "editable": true, - "jp-MarkdownHeadingCollapsed": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "```{admonition} When using loc/iloc\n", - ":class: tip\n", - "The part *before the comma* is the *rows* you want\n", - "\n", - "The part *after the comma* is the *columns* you want to select\n", - "```" - ] - }, - { - "cell_type": "markdown", - "id": "d4cf03c1-896d-4286-9586-a46419cd799c", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "We can also filter using integer position-based location: `iloc`.\n", - "\n", - "The code below selects a subset of rows and columns from the 'titanic' `DataFrame` using integer positions.\\\n", - "Index positions start from 0 and the end position is exclusive, so the selected rows correspond to the 10th to the 25th row in the `DataFrame`, and the selected columns correspond to the 3rd to the 6th column.\n", - "\n", - "* Use `iloc` to select rows from index position 9 to 25 (exclusive) and columns from index position 2 to 6 (exclusive)." - ] - }, - { - "cell_type": "code", - "execution_count": 35, - "id": "158a6643-8c5a-41a2-8ef5-d41433b38b23", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PclassNameSexAge
92Nasser, Mrs. Nicholas (Adele Achem)female14.0
103Sandstrom, Miss. Marguerite Rutfemale4.0
111Bonnell, Miss. Elizabethfemale58.0
123Saundercock, Mr. William Henrymale20.0
133Andersson, Mr. Anders Johanmale39.0
143Vestrom, Miss. Hulda Amanda Adolfinafemale14.0
152Hewlett, Mrs. (Mary D Kingcome)female55.0
163Rice, Master. Eugenemale2.0
172Williams, Mr. Charles EugenemaleNaN
183Vander Planke, Mrs. Julius (Emelia Maria Vande...female31.0
193Masselmani, Mrs. FatimafemaleNaN
202Fynney, Mr. Joseph Jmale35.0
212Beesley, Mr. Lawrencemale34.0
223McGowan, Miss. Anna \"Annie\"female15.0
231Sloper, Mr. William Thompsonmale28.0
243Palsson, Miss. Torborg Danirafemale8.0
\n", - "
" - ], - "text/plain": [ - " Pclass Name Sex Age\n", - "9 2 Nasser, Mrs. Nicholas (Adele Achem) female 14.0\n", - "10 3 Sandstrom, Miss. Marguerite Rut female 4.0\n", - "11 1 Bonnell, Miss. Elizabeth female 58.0\n", - "12 3 Saundercock, Mr. William Henry male 20.0\n", - "13 3 Andersson, Mr. Anders Johan male 39.0\n", - "14 3 Vestrom, Miss. Hulda Amanda Adolfina female 14.0\n", - "15 2 Hewlett, Mrs. (Mary D Kingcome) female 55.0\n", - "16 3 Rice, Master. Eugene male 2.0\n", - "17 2 Williams, Mr. Charles Eugene male NaN\n", - "18 3 Vander Planke, Mrs. Julius (Emelia Maria Vande... female 31.0\n", - "19 3 Masselmani, Mrs. Fatima female NaN\n", - "20 2 Fynney, Mr. Joseph J male 35.0\n", - "21 2 Beesley, Mr. Lawrence male 34.0\n", - "22 3 McGowan, Miss. Anna \"Annie\" female 15.0\n", - "23 1 Sloper, Mr. William Thompson male 28.0\n", - "24 3 Palsson, Miss. Torborg Danira female 8.0" - ] - }, - "execution_count": 35, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "titanic.iloc[9:25, 2:6]" - ] - }, - { - "cell_type": "markdown", - "id": "4d1992ac-c82b-44b4-9b91-2de0e4a796d0", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "We can rewrite the statement above using `loc` instead.\n", - "\n", - "**Note that with `loc` the slicing is inclusive on both ends!**\n", - "\n", - "* `9:24` specifies the rows from index label 9 to 24 (inclusive).\n", - "* ['Pclass', 'Name', 'Sex', 'Age'] explicitly lists the column names corresponding to the integer positions 2 to 5 (inclusive)." - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "aa51f1f2-8152-490c-9df3-c65fb7289441", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PclassNameSexAge
92Nasser, Mrs. Nicholas (Adele Achem)female14.0
103Sandstrom, Miss. Marguerite Rutfemale4.0
111Bonnell, Miss. Elizabethfemale58.0
123Saundercock, Mr. William Henrymale20.0
133Andersson, Mr. Anders Johanmale39.0
143Vestrom, Miss. Hulda Amanda Adolfinafemale14.0
152Hewlett, Mrs. (Mary D Kingcome)female55.0
163Rice, Master. Eugenemale2.0
172Williams, Mr. Charles EugenemaleNaN
183Vander Planke, Mrs. Julius (Emelia Maria Vande...female31.0
193Masselmani, Mrs. FatimafemaleNaN
202Fynney, Mr. Joseph Jmale35.0
212Beesley, Mr. Lawrencemale34.0
223McGowan, Miss. Anna \"Annie\"female15.0
231Sloper, Mr. William Thompsonmale28.0
243Palsson, Miss. Torborg Danirafemale8.0
\n", - "
" - ], - "text/plain": [ - " Pclass Name Sex Age\n", - "9 2 Nasser, Mrs. Nicholas (Adele Achem) female 14.0\n", - "10 3 Sandstrom, Miss. Marguerite Rut female 4.0\n", - "11 1 Bonnell, Miss. Elizabeth female 58.0\n", - "12 3 Saundercock, Mr. William Henry male 20.0\n", - "13 3 Andersson, Mr. Anders Johan male 39.0\n", - "14 3 Vestrom, Miss. Hulda Amanda Adolfina female 14.0\n", - "15 2 Hewlett, Mrs. (Mary D Kingcome) female 55.0\n", - "16 3 Rice, Master. Eugene male 2.0\n", - "17 2 Williams, Mr. Charles Eugene male NaN\n", - "18 3 Vander Planke, Mrs. Julius (Emelia Maria Vande... female 31.0\n", - "19 3 Masselmani, Mrs. Fatima female NaN\n", - "20 2 Fynney, Mr. Joseph J male 35.0\n", - "21 2 Beesley, Mr. Lawrence male 34.0\n", - "22 3 McGowan, Miss. Anna \"Annie\" female 15.0\n", - "23 1 Sloper, Mr. William Thompson male 28.0\n", - "24 3 Palsson, Miss. Torborg Danira female 8.0" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "titanic.loc[9:24, ['Pclass', 'Name', 'Sex', 'Age']]" - ] - }, - { - "cell_type": "markdown", - "id": "9090b814-0cd1-4051-aa3f-97c1dbe4a7ef", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "1abd232e-4db8-4e0f-9a1d-f313612bb780", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## Combining `loc` and `iloc`" - ] - }, - { - "cell_type": "markdown", - "id": "9e4e0c38-47fd-4430-80c4-930db79e1f44", - "metadata": {}, - "source": [ - "We can use `iloc` to select:\n", - "\n", - "* Rows from index position 9 to 25 (exclusive).\n", - "* Columns from index position 2 to 6 (exclusive).\n", - "\n", - "Then further filter these rows using `loc` based on the condition where:\n", - "\n", - "* 'Age' is greater than 35." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "0d3a0ebf-f1bd-4b1b-bfa3-49ca391be129", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/html": [ - "
\n", - "\n", - "\n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - " \n", - "
PclassNameSexAge
111Bonnell, Miss. Elizabethfemale58.0
133Andersson, Mr. Anders Johanmale39.0
152Hewlett, Mrs. (Mary D Kingcome)female55.0
\n", - "
" - ], - "text/plain": [ - " Pclass Name Sex Age\n", - "11 1 Bonnell, Miss. Elizabeth female 58.0\n", - "13 3 Andersson, Mr. Anders Johan male 39.0\n", - "15 2 Hewlett, Mrs. (Mary D Kingcome) female 55.0" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "titanic.iloc[9:25, 2:6].loc[titanic['Age'] > 35]" - ] - }, - { - "cell_type": "markdown", - "id": "33a65650-4417-45b9-b291-34e5bbffd809", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "___" - ] - }, - { - "cell_type": "markdown", - "id": "86ee5780-127b-4b71-a84d-99b9c268ec40", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [] - }, - "source": [ - "## More information about `loc` and `iloc`\n", - "\n", - "* [A short video (you can turn up the speed)](https://www.youtube.com/watch?v=naRQyRZrXCE)\n", - "\n", - "* [Official documentation loc](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html)\n", - "\n", - "* [Offical documentation iloc](https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html)\n", - "\n", - "\n", - "* [Difference between `loc` and `iloc` described](https://www.geeksforgeeks.org/difference-between-loc-and-iloc-in-pandas-dataframe/)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "7e0b776a-9e5d-4df2-bacd-caaa12864cc0", - "metadata": { - "editable": true, - "slideshow": { - "slide_type": "" - }, - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.5" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/_sources/docs/pandas/xx_variables.ipynb b/_sources/docs/pandas/xx_variables.ipynb deleted file mode 100644 index 9467b3f5..00000000 --- a/_sources/docs/pandas/xx_variables.ipynb +++ /dev/null @@ -1,1877 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Out: Variables" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "*Note: You can explore the [associated workbook](https://mybinder.org/v2/gh/melaniewalsh/Intro-Cultural-Analytics/master?urlpath=lab/tree/book/02-Python/Workbooks/05.5-Data-Types-Variables-WORKBOOK.ipynb) for this chapter in the cloud.*" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Variables are one of the fundamental building blocks of Python. A variable is like a tiny container where you store values and data, such as filenames, words, numbers, collections of words and numbers, and more." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "![](https://cdn.pixabay.com/photo/2016/09/14/20/48/birthday-1670415_960_720.png)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Assigning Variables" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The variable name will point to a value that you \"assign\" it. You might think about variable assignment like putting a value \"into\" the variable, as if the variable is a little box 🎁\n", - "\n", - "You assign variables with an equals `=` sign. In Python, a single equals sign `=` is the \"assignment operator.\" A double equals sign `==` is the \"real\" equals sign." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "4\n" - ] - } - ], - "source": [ - "new_variable = 100\n", - "print(new_variable)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "True" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "2 * 2 == 4" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "I'm another variable!\n" - ] - } - ], - "source": [ - "different_variable = \"I'm another variable!\"\n", - "print(different_variable)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's look at some of the variables that we used when we counted the most frequent words in Charlotte Perkins Gilman's \"The Yellow Wallpaper.\"" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "scrolled": true, - "tags": [ - "output_scroll", - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('john', 45),\n", - " ('one', 33),\n", - " ('said', 30),\n", - " ('would', 27),\n", - " ('get', 24),\n", - " ('see', 24),\n", - " ('room', 24),\n", - " ('pattern', 24),\n", - " ('paper', 23),\n", - " ('like', 21),\n", - " ('little', 20),\n", - " ('much', 16),\n", - " ('good', 16),\n", - " ('think', 16),\n", - " ('well', 15),\n", - " ('know', 15),\n", - " ('go', 15),\n", - " ('really', 14),\n", - " ('thing', 14),\n", - " ('wallpaper', 13),\n", - " ('night', 13),\n", - " ('long', 12),\n", - " ('course', 12),\n", - " ('things', 12),\n", - " ('take', 12),\n", - " ('always', 12),\n", - " ('could', 12),\n", - " ('jennie', 12),\n", - " ('great', 11),\n", - " ('says', 11),\n", - " ('feel', 11),\n", - " ('even', 11),\n", - " ('used', 11),\n", - " ('dear', 11),\n", - " ('time', 11),\n", - " ('enough', 11),\n", - " ('away', 11),\n", - " ('want', 11),\n", - " ('never', 10),\n", - " ('must', 10)]" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Import Libraries and Modules\n", - "\n", - "import re\n", - "from collections import Counter\n", - "\n", - "# Define Functions\n", - "\n", - "def split_into_words(any_chunk_of_text):\n", - " lowercase_text = any_chunk_of_text.lower()\n", - " split_words = re.split(\"\\W+\", lowercase_text)\n", - " return split_words\n", - "\n", - "# Define Filepaths and Assign Variables\n", - "\n", - "filepath_of_text = \"../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt\"\n", - "number_of_desired_words = 40\n", - "\n", - "stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',\n", - "'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',\n", - " 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',\n", - " 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are',\n", - " 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does',\n", - " 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until',\n", - " 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into',\n", - " 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down',\n", - " 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here',\n", - " 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more',\n", - " 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',\n", - " 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']\n", - "\n", - "# Read in File\n", - "\n", - "full_text = open(filepath_of_text, encoding=\"utf-8\").read()\n", - "\n", - "# Manipulate and Analyze File\n", - "\n", - "all_the_words = split_into_words(full_text)\n", - "meaningful_words = [word for word in all_the_words if word not in stopwords]\n", - "meaningful_words_tally = Counter(meaningful_words)\n", - "most_frequent_meaningful_words = meaningful_words_tally.most_common(number_of_desired_words)\n", - "\n", - "# Output Results\n", - "\n", - "most_frequent_meaningful_words" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We made the variables:\n", - "- `filepath_of_text`\n", - "- `stopwords` \n", - "- `number_of_desired_words` \n", - "- `full_text` " - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [ - "filepath_of_text = \"../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt\"\n", - "number_of_desired_words = 40\n", - "stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',\n", - " 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',\n", - " 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',\n", - " 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are',\n", - " 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does',\n", - " 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until',\n", - " 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into',\n", - " 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down',\n", - " 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here',\n", - " 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more',\n", - " 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',\n", - " 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']\n", - "\n", - "full_text = open(filepath_of_text, encoding=\"utf-8\").read()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Jupyter Display vs `Print()`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We can check to see what's \"inside\" these variables by running a cell with the variable's name. This is one of the handiest features of a Jupyter notebook. Outside the Jupyter environment, you would need to use the `print()` function to display the variable." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "'../texts/The-Yellow-Wallpaper.txt'" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "filepath_of_text" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "scrolled": true, - "tags": [ - "output_scroll", - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "['i',\n", - " 'me',\n", - " 'my',\n", - " 'myself',\n", - " 'we',\n", - " 'our',\n", - " 'ours',\n", - " 'ourselves',\n", - " 'you',\n", - " 'your',\n", - " 'yours',\n", - " 'yourself',\n", - " 'yourselves',\n", - " 'he',\n", - " 'him',\n", - " 'his',\n", - " 'himself',\n", - " 'she',\n", - " 'her',\n", - " 'hers',\n", - " 'herself',\n", - " 'it',\n", - " 'its',\n", - " 'itself',\n", - " 'they',\n", - " 'them',\n", - " 'their',\n", - " 'theirs',\n", - " 'themselves',\n", - " 'what',\n", - " 'which',\n", - " 'who',\n", - " 'whom',\n", - " 'this',\n", - " 'that',\n", - " 'these',\n", - " 'those',\n", - " 'am',\n", - " 'is',\n", - " 'are',\n", - " 'was',\n", - " 'were',\n", - " 'be',\n", - " 'been',\n", - " 'being',\n", - " 'have',\n", - " 'has',\n", - " 'had',\n", - " 'having',\n", - " 'do',\n", - " 'does',\n", - " 'did',\n", - " 'doing',\n", - " 'a',\n", - " 'an',\n", - " 'the',\n", - " 'and',\n", - " 'but',\n", - " 'if',\n", - " 'or',\n", - " 'because',\n", - " 'as',\n", - " 'until',\n", - " 'while',\n", - " 'of',\n", - " 'at',\n", - " 'by',\n", - " 'for',\n", - " 'with',\n", - " 'about',\n", - " 'against',\n", - " 'between',\n", - " 'into',\n", - " 'through',\n", - " 'during',\n", - " 'before',\n", - " 'after',\n", - " 'above',\n", - " 'below',\n", - " 'to',\n", - " 'from',\n", - " 'up',\n", - " 'down',\n", - " 'in',\n", - " 'out',\n", - " 'on',\n", - " 'off',\n", - " 'over',\n", - " 'under',\n", - " 'again',\n", - " 'further',\n", - " 'then',\n", - " 'once',\n", - " 'here',\n", - " 'there',\n", - " 'when',\n", - " 'where',\n", - " 'why',\n", - " 'how',\n", - " 'all',\n", - " 'any',\n", - " 'both',\n", - " 'each',\n", - " 'few',\n", - " 'more',\n", - " 'most',\n", - " 'other',\n", - " 'some',\n", - " 'such',\n", - " 'no',\n", - " 'nor',\n", - " 'not',\n", - " 'only',\n", - " 'own',\n", - " 'same',\n", - " 'so',\n", - " 'than',\n", - " 'too',\n", - " 'very',\n", - " 's',\n", - " 't',\n", - " 'can',\n", - " 'will',\n", - " 'just',\n", - " 'don',\n", - " 'should',\n", - " 'now',\n", - " 've',\n", - " 'll',\n", - " 'amp']" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "stopwords" - ] - }, - { - "cell_type": "code", - "execution_count": 74, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "40" - ] - }, - "execution_count": 74, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "number_of_desired_words" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Your turn! Pick another variable from the script above and see what's inside it below." - ] - }, - { - "cell_type": "code", - "execution_count": 224, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [ - "#your_chosen_variable" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "You can run the `print` function inside the Jupyter environment, too. This is sometimes useful because Jupyter will only display the last variable in a cell, while `print()` can display multiple variables. Additionally, Jupyter will display text with `\\n` characters (which means \"new line\"), while `print()` will display the text appropriately formatted with new lines." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For example, with the `print()` function, each of the variables are printed, and the \"The Yellow Wallpaper\" is properly formatted with new lines." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true, - "tags": [ - "output_scroll", - "hide-output" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "../texts/literature/The-Yellow-Wallpaper.txt\n", - "['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers', 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']\n", - "40\n", - "THE YELLOW WALLPAPER\n", - "\n", - "By Charlotte Perkins Gilman\n", - "\n", - "\n", - "\n", - "It is very seldom that mere ordinary people like John and myself secure\n", - "ancestral halls for the summer.\n", - "\n", - "A colonial mansion, a hereditary estate, I would say a haunted house, and\n", - "reach the height of romantic felicity—but that would be asking too\n", - "much of fate!\n", - "\n", - "Still I will proudly declare that there is something queer about it.\n", - "\n", - "Else, why should it be let so cheaply? And why have stood so long\n", - "untenanted?\n", - "\n", - "John laughs at me, of course, but one expects that in marriage.\n", - "\n", - "John is practical in the extreme. He has no patience with faith, an\n", - "intense horror of superstition, and he scoffs openly at any talk of things\n", - "not to be felt and seen and put down in figures.\n", - "\n", - "John is a physician, and perhaps—(I would not say it to a living\n", - "soul, of course, but this is dead paper and a great relief to my\n", - "mind)—perhaps that is one reason I do not get well faster.\n", - "\n", - "You see, he does not believe I am sick!\n", - "\n", - "And what can one do?\n", - "\n", - "If a physician of high standing, and one’s own husband, assures friends\n", - "and relatives that there is really nothing the matter with one but\n", - "temporary nervous depression—a slight hysterical tendency—what\n", - "is one to do?\n", - "\n", - "My brother is also a physician, and also of high standing, and he says the\n", - "same thing.\n", - "\n", - "So I take phosphates or phosphites—whichever it is, and tonics, and\n", - "journeys, and air, and exercise, and am absolutely forbidden to “work”\n", - "until I am well again.\n", - "\n", - "Personally, I disagree with their ideas.\n", - "\n", - "Personally, I believe that congenial work, with excitement and change,\n", - "would do me good.\n", - "\n", - "But what is one to do?\n", - "\n", - "I did write for a while in spite of them; but it does exhaust me a good\n", - "deal—having to be so sly about it, or else meet with heavy\n", - "opposition.\n", - "\n", - "I sometimes fancy that in my condition if I had less opposition and more\n", - "society and stimulus—but John says the very worst thing I can do is\n", - "to think about my condition, and I confess it always makes me feel bad.\n", - "\n", - "So I will let it alone and talk about the house.\n", - "\n", - "The most beautiful place! It is quite alone, standing well back from the\n", - "road, quite three miles from the village. It makes me think of English\n", - "places that you read about, for there are hedges and walls and gates that\n", - "lock, and lots of separate little houses for the gardeners and people.\n", - "\n", - "There is a delicious garden! I never saw such a garden—large and\n", - "shady, full of box-bordered paths, and lined with long grape-covered\n", - "arbors with seats under them.\n", - "\n", - "There were greenhouses, too, but they are all broken now.\n", - "\n", - "There was some legal trouble, I believe, something about the heirs and\n", - "co-heirs; anyhow, the place has been empty for years.\n", - "\n", - "That spoils my ghostliness, I am afraid; but I don’t care—there is\n", - "something strange about the house—I can feel it.\n", - "\n", - "I even said so to John one moonlight evening, but he said what I felt was\n", - "a draught, and shut the window.\n", - "\n", - "I get unreasonably angry with John sometimes. I’m sure I never used to be\n", - "so sensitive. I think it is due to this nervous condition.\n", - "\n", - "But John says if I feel so I shall neglect proper self-control; so I take\n", - "pains to control myself,—before him, at least,—and that makes\n", - "me very tired.\n", - "\n", - "I don’t like our room a bit. I wanted one downstairs that opened on the\n", - "piazza and had roses all over the window, and such pretty old-fashioned\n", - "chintz hangings! but John would not hear of it.\n", - "\n", - "He said there was only one window and not room for two beds, and no near\n", - "room for him if he took another.\n", - "\n", - "He is very careful and loving, and hardly lets me stir without special\n", - "direction.\n", - "\n", - "I have a schedule prescription for each hour in the day; he takes all care\n", - "from me, and so I feel basely ungrateful not to value it more.\n", - "\n", - "He said we came here solely on my account, that I was to have perfect rest\n", - "and all the air I could get. “Your exercise depends on your strength, my\n", - "dear,” said he, “and your food somewhat on your appetite; but air you\n", - "can absorb all the time.” So we took the nursery, at the top of the house.\n", - "\n", - "It is a big, airy room, the whole floor nearly, with windows that look all\n", - "ways, and air and sunshine galore. It was nursery first and then\n", - "playground\n", - "and gymnasium, I should judge; for the windows are barred for little\n", - "children, and there are rings and things in the walls.\n", - "\n", - "The paint and paper look as if a boys’ school had used it. It is stripped\n", - "off—the paper—in great patches all around the head of my bed,\n", - "about as far as I can reach, and in a great place on the other side of the\n", - "room low down. I never saw a worse paper in my life.\n", - "\n", - "One of those sprawling flamboyant patterns committing every artistic sin.\n", - "\n", - "It is dull enough to confuse the eye in following, pronounced enough to\n", - "constantly irritate, and provoke study, and when you follow the lame,\n", - "uncertain curves for a little distance they suddenly commit suicide—plunge\n", - "off at outrageous angles, destroy themselves in unheard-of contradictions.\n", - "\n", - "The color is repellant, almost revolting; a smouldering, unclean yellow,\n", - "strangely faded by the slow-turning sunlight.\n", - "\n", - "It is a dull yet lurid orange in some places, a sickly sulphur tint in\n", - "others.\n", - "\n", - "No wonder the children hated it! I should hate it myself if I had to live\n", - "in this room long.\n", - "\n", - "There comes John, and I must put this away,—he hates to have me\n", - "write a word.\n", - "\n", - "We have been here two weeks, and I haven’t felt like writing before, since\n", - "that first day.\n", - "\n", - "I am sitting by the window now, up in this atrocious nursery, and there is\n", - "nothing to hinder my writing as much as I please, save lack of strength.\n", - "\n", - "John is away all day, and even some nights when his cases are serious.\n", - "\n", - "I am glad my case is not serious!\n", - "\n", - "But these nervous troubles are dreadfully depressing.\n", - "\n", - "John does not know how much I really suffer. He knows there is no reason\n", - "to suffer, and that satisfies him.\n", - "\n", - "Of course it is only nervousness. It does weigh on me so not to do my duty\n", - "in any way!\n", - "\n", - "I meant to be such a help to John, such a real rest and comfort, and here\n", - "I am a comparative burden already!\n", - "\n", - "Nobody would believe what an effort it is to do what little I am able—to\n", - "dress and entertain, and order things.\n", - "\n", - "It is fortunate Mary is so good with the baby. Such a dear baby!\n", - "\n", - "And yet I cannot be with him, it makes me so nervous.\n", - "\n", - "I suppose John never was nervous in his life. He laughs at me so about\n", - "this wallpaper!\n", - "\n", - "At first he meant to repaper the room, but afterwards he said that I was\n", - "letting it get the better of me, and that nothing was worse for a nervous\n", - "patient than to give way to such fancies.\n", - "\n", - "He said that after the wallpaper was changed it would be the heavy\n", - "bedstead, and then the barred windows, and then that gate at the head of\n", - "the stairs, and so on.\n", - "\n", - "“You know the place is doing you good,” he said, “and really, dear, I\n", - "don’t care to renovate the house just for a three months’ rental.”\n", - "\n", - "“Then do let us go downstairs,” I said, “there are such pretty rooms\n", - "there.”\n", - "\n", - "Then he took me in his arms and called me a blessed little goose, and said\n", - "he would go down cellar if I wished, and have it whitewashed into\n", - "the bargain.\n", - "\n", - "But he is right enough about the beds and windows and things.\n", - "\n", - "It is as airy and comfortable a room as any one need wish, and, of course,\n", - "I\n", - "would not be so silly as to make him uncomfortable just for a whim.\n", - "\n", - "I’m really getting quite fond of the big room, all but that horrid paper.\n", - "\n", - "Out of one window I can see the garden, those mysterious deep-shaded\n", - "arbors, the riotous old-fashioned flowers, and bushes and gnarly trees.\n", - "\n", - "Out of another I get a lovely view of the bay and a little private wharf\n", - "belonging to the estate. There is a beautiful shaded lane that runs down\n", - "there from the house. I always fancy I see people walking in these\n", - "numerous paths and arbors, but John has cautioned me not to give way to\n", - "fancy in the least. He says that with my imaginative power and habit of\n", - "story-making a nervous weakness like mine is sure to lead to all manner\n", - "of excited fancies, and that I ought to use my will and good sense to\n", - "check the tendency. So I try.\n", - "\n", - "I think sometimes that if I were only well enough to write a little it\n", - "would relieve the press of ideas and rest me.\n", - "\n", - "But I find I get pretty tired when I try.\n", - "\n", - "It is so discouraging not to have any advice and companionship about my\n", - "work. When I get really well John says we will ask Cousin Henry and Julia\n", - "down for a long visit; but he says he would as soon put fire-works in my\n", - "pillow-case as to let me have those stimulating people about now.\n", - "\n", - "I wish I could get well faster.\n", - "\n", - "But I must not think about that. This paper looks to me as if it knew what\n", - "a vicious influence it had!\n", - "\n", - "There is a recurrent spot where the pattern lolls like a broken neck and\n", - "two bulbous eyes stare at you upside-down.\n", - "\n", - "I get positively angry with the impertinence of it and the\n", - "everlastingness. Up and down and sideways they crawl, and those absurd,\n", - "unblinking eyes are everywhere. There is one place where two breadths\n", - "didn’t match, and the eyes go all up and down the line, one a little\n", - "higher than the other.\n", - "\n", - "I never saw so much expression in an inanimate thing before, and we all\n", - "know how much expression they have! I used to lie awake as a child and get\n", - "more entertainment and terror out of blank walls and plain furniture than\n", - "most children could find in a toy-store.\n", - "\n", - "I remember what a kindly wink the knobs of our big old bureau used to\n", - "have, and there was one chair that always seemed like a strong friend.\n", - "\n", - "I used to feel that if any of the other things looked too fierce I could\n", - "always hop into that chair and be safe.\n", - "\n", - "The furniture in this room is no worse than inharmonious, however, for we\n", - "had to bring it all from downstairs. I suppose when this was used as a\n", - "playroom they had to take the nursery things out, and no wonder! I never\n", - "saw such ravages as the children have made here.\n", - "\n", - "The wallpaper, as I said before, is torn off in spots, and it sticketh\n", - "closer than a brother—they must have had perseverance as well as\n", - "hatred.\n", - "\n", - "Then the floor is scratched and gouged and splintered, the plaster itself\n", - "is dug out here and there, and this great heavy bed, which is all we found\n", - "in the room, looks as if it had been through the wars.\n", - "\n", - "But I don’t mind it a bit—only the paper.\n", - "\n", - "There comes John’s sister. Such a dear girl as she is, and so careful of\n", - "me! I must not let her find me writing.\n", - "\n", - "She is a perfect, and enthusiastic housekeeper, and hopes for no better\n", - "profession. I verily believe she thinks it is the writing which made me\n", - "sick!\n", - "\n", - "But I can write when she is out, and see her a long way off from these\n", - "windows.\n", - "\n", - "There is one that commands the road, a lovely, shaded, winding road, and\n", - "one\n", - "that just looks off over the country. A lovely country, too, full of great\n", - "elms and velvet meadows.\n", - "\n", - "This wallpaper has a kind of sub-pattern in a different shade, a\n", - "particularly irritating one, for you can only see it in certain lights,\n", - "and not clearly then.\n", - "\n", - "But in the places where it isn’t faded, and where the sun is just so, I\n", - "can see a strange, provoking, formless sort of figure, that seems to sulk\n", - "about behind that silly and conspicuous front design.\n", - "\n", - "There’s sister on the stairs!\n", - "\n", - "Well, the Fourth of July is over! The people are gone and I am tired out.\n", - "John thought it might do me good to see a little company, so we just had\n", - "mother and Nellie and the children down for a week.\n", - "\n", - "Of course I didn’t do a thing. Jennie sees to everything now.\n", - "\n", - "But it tired me all the same.\n", - "\n", - "John says if I don’t pick up faster he shall send me to Weir Mitchell in\n", - "the fall.\n", - "\n", - "But I don’t want to go there at all. I had a friend who was in his hands\n", - "once, and she says he is just like John and my brother, only more so!\n", - "\n", - "Besides, it is such an undertaking to go so far.\n", - "\n", - "I don’t feel as if it was worth while to turn my hand over for anything,\n", - "and I’m getting dreadfully fretful and querulous.\n", - "\n", - "I cry at nothing, and cry most of the time.\n", - "\n", - "Of course I don’t when John is here, or anybody else, but when I am alone.\n", - "\n", - "And I am alone a good deal just now. John is kept in town very often by\n", - "serious cases, and Jennie is good and lets me alone when I want her to.\n", - "\n", - "So I walk a little in the garden or down that lovely lane, sit on the\n", - "porch under the roses, and lie down up here a good deal.\n", - "\n", - "I’m getting really fond of the room in spite of the wallpaper. Perhaps\n", - "because of the wallpaper.\n", - "\n", - "It dwells in my mind so!\n", - "\n", - "I lie here on this great immovable bed—it is nailed down, I believe—and\n", - "follow that pattern about by the hour. It is as good as gymnastics, I\n", - "assure you. I start, we’ll say, at the bottom, down in the corner over\n", - "there where it has not been touched, and I determine for the thousandth\n", - "time that I will follow that pointless pattern to some sort of a\n", - "conclusion.\n", - "\n", - "I know a little of the principle of design, and I know this thing was not\n", - "arranged on any laws of radiation, or alternation, or repetition, or\n", - "symmetry, or anything else that I ever heard of.\n", - "\n", - "It is repeated, of course, by the breadths, but not otherwise.\n", - "\n", - "Looked at in one way each breadth stands alone, the bloated curves and\n", - "flourishes—a kind of “debased Romanesque” with delirium\n", - "tremens—go waddling up and down in isolated columns of fatuity.\n", - "\n", - "But, on the other hand, they connect diagonally, and the sprawling\n", - "outlines run off in great slanting waves of optic horror, like a lot of\n", - "wallowing seaweeds in full chase.\n", - "\n", - "The whole thing goes horizontally, too, at least it seems so, and I\n", - "exhaust myself in trying to distinguish the order of its going in that\n", - "direction.\n", - "\n", - "They have used a horizontal breadth for a frieze, and that adds\n", - "wonderfully to the confusion.\n", - "\n", - "There is one end of the room where it is almost intact, and there, when\n", - "the cross-lights fade and the low sun shines directly upon it, I can\n", - "almost\n", - "fancy radiation after all,—the interminable grotesques seem to form\n", - "around a common centre and rush off in headlong plunges of equal\n", - "distraction.\n", - "\n", - "It makes me tired to follow it. I will take a nap, I guess.\n", - "\n", - "I don’t know why I should write this.\n", - "\n", - "I don’t want to.\n", - "\n", - "I don’t feel able.\n", - "\n", - "And I know John would think it absurd. But I must say what I feel and\n", - "think in some way—it is such a relief!\n", - "\n", - "But the effort is getting to be greater than the relief.\n", - "\n", - "Half the time now I am awfully lazy, and lie down ever so much.\n", - "\n", - "John says I musn’t lose my strength, and has me take cod-liver oil and\n", - "lots of tonics and things, to say nothing of ale and wine and rare meat.\n", - "\n", - "Dear John! He loves me very dearly, and hates to have me sick. I tried to\n", - "have a real earnest reasonable talk with him the other day, and tell him\n", - "how I wish he would let me go and make a visit to Cousin Henry and Julia.\n", - "\n", - "But he said I wasn’t able to go, nor able to stand it after I got there;\n", - "and I did not make out a very good case for myself, for I was crying\n", - "before I had finished.\n", - "\n", - "It is getting to be a great effort for me to think straight. Just this\n", - "nervous weakness, I suppose.\n", - "\n", - "And dear John gathered me up in his arms, and just carried me upstairs and\n", - "laid me on the bed, and sat by me and read to me till it tired my head.\n", - "\n", - "He said I was his darling and his comfort and all he had, and that I must\n", - "take care of myself for his sake, and keep well.\n", - "\n", - "He says no one but myself can help me out of it, that I must use my will\n", - "and self-control and not let any silly fancies run away with me.\n", - "\n", - "There’s one comfort, the baby is well and happy, and does not have to\n", - "occupy this nursery with the horrid wallpaper.\n", - "\n", - "If we had not used it that blessed child would have! What a fortunate\n", - "escape! Why, I wouldn’t have a child of mine, an impressionable little\n", - "thing, live in such a room for worlds.\n", - "\n", - "I never thought of it before, but it is lucky that John kept me here after\n", - "all. I can stand it so much easier than a baby, you see.\n", - "\n", - "Of course I never mention it to them any more,—I am too wise,—but\n", - "I keep watch of it all the same.\n", - "\n", - "There are things in that paper that nobody knows but me, or ever will.\n", - "\n", - "Behind that outside pattern the dim shapes get clearer every day.\n", - "\n", - "It is always the same shape, only very numerous.\n", - "\n", - "And it is like a woman stooping down and creeping about behind that\n", - "pattern. I don’t like it a bit. I wonder—I begin to think—I\n", - "wish John would take me away from here!\n", - "\n", - "It is so hard to talk with John about my case, because he is so wise, and\n", - "because he loves me so.\n", - "\n", - "But I tried it last night.\n", - "\n", - "It was moonlight. The moon shines in all around, just as the sun does.\n", - "\n", - "I hate to see it sometimes, it creeps so slowly, and always comes in by\n", - "one window or another.\n", - "\n", - "John was asleep and I hated to waken him, so I kept still and watched the\n", - "moonlight on that undulating wallpaper till I felt creepy.\n", - "\n", - "The faint figure behind seemed to shake the pattern, just as if she wanted\n", - "to get out.\n", - "\n", - "I got up softly and went to feel and see if the paper did move, and when I\n", - "came back John was awake.\n", - "\n", - "“What is it, little girl?” he said. “Don’t go walking\n", - "about like that—you’ll get cold.”\n", - "\n", - "I though it was a good time to talk, so I told him that I really was not\n", - "gaining here, and that I wished he would take me away.\n", - "\n", - "“Why darling!” said he, “our lease will be up in three\n", - "weeks, and I can’t see how to leave before.\n", - "\n", - "“The repairs are not done at home, and I cannot possibly leave town just\n", - "now. Of course if you were in any danger I could and would, but you\n", - "really are better, dear, whether you can see it or not. I am a doctor,\n", - "dear, and I know. You are gaining flesh and color, your appetite is\n", - "better. I feel really much easier about you.”\n", - "\n", - "“I don’t weigh a bit more,” said I, “nor as much; and\n", - "my appetite may be better in the evening, when you are here, but it is\n", - "worse\n", - "in the morning when you are away.”\n", - "\n", - "“Bless her little heart!” said he with a big hug; “she shall be as sick as\n", - "she pleases! But now let’s improve the shining hours by going to sleep,\n", - "and talk about it in the morning!”\n", - "\n", - "“And you won’t go away?” I asked gloomily.\n", - "\n", - "“Why, how can I, dear? It is only three weeks more and then we will take a\n", - "nice little trip of a few days while Jennie is getting the house ready.\n", - "Really, dear, you are better!”\n", - "\n", - "“Better in body perhaps”—I began, and stopped short, for he sat up\n", - "straight and looked at me with such a stern, reproachful look that I could\n", - "not say another word.\n", - "\n", - "“My darling,” said he, “I beg of you, for my sake and for our child’s\n", - "sake, as well as for your own, that you will never for one instant let\n", - "that idea enter your mind! There is nothing so dangerous, so fascinating,\n", - "to a temperament like yours. It is a false and foolish fancy. Can you not\n", - "trust me as a physician when I tell you so?”\n", - "\n", - "So of course I said no more on that score, and we went to sleep before\n", - "long. He thought I was asleep first, but I wasn’t,—I lay there for hours\n", - "trying to decide whether that front pattern and the back pattern really\n", - "did move together or separately.\n", - "\n", - "On a pattern like this, by daylight, there is a lack of sequence, a\n", - "defiance of law, that is a constant irritant to a normal mind.\n", - "\n", - "The color is hideous enough, and unreliable enough, and infuriating\n", - "enough, but the pattern is torturing.\n", - "\n", - "You think you have mastered it, but just as you get well under way in\n", - "following, it turns a back somersault and there you are. It slaps you in\n", - "the face, knocks you down, and tramples upon you. It is like a bad dream.\n", - "\n", - "The outside pattern is a florid arabesque, reminding one of a fungus. If\n", - "you can imagine a toadstool in joints, an interminable string of\n", - "toadstools, budding and sprouting in endless convolutions,—why, that\n", - "is something like it.\n", - "\n", - "That is, sometimes!\n", - "\n", - "There is one marked peculiarity about this paper, a thing nobody seems to\n", - "notice but myself, and that is that it changes as the light changes.\n", - "\n", - "When the sun shoots in through the east window—I always watch for\n", - "that first long, straight ray—it changes so quickly that I never can\n", - "quite believe it.\n", - "\n", - "That is why I watch it always.\n", - "\n", - "By moonlight—the moon shines in all night when there is a moon—I\n", - "wouldn’t know it was the same paper.\n", - "\n", - "At night in any kind of light, in twilight, candlelight, lamplight, and\n", - "worst of all by moonlight, it becomes bars! The outside pattern I mean,\n", - "and the woman behind it is as plain as can be.\n", - "\n", - "I didn’t realize for a long time what the thing was that showed\n", - "behind,—that dim sub-pattern,—but now I am quite sure it is a woman.\n", - "\n", - "By daylight she is subdued, quiet. I fancy it is the pattern that keeps\n", - "her so still. It is so puzzling. It keeps me quiet by the hour.\n", - "\n", - "I lie down ever so much now. John says it is good for me, and to sleep all\n", - "I can.\n", - "\n", - "Indeed, he started the habit by making me lie down for an hour after each\n", - "meal.\n", - "\n", - "It is a very bad habit, I am convinced, for, you see, I don’t sleep.\n", - "\n", - "And that cultivates deceit, for I don’t tell them I’m\n", - "awake,—oh, no!\n", - "\n", - "The fact is, I am getting a little afraid of John.\n", - "\n", - "He seems very queer sometimes, and even Jennie has an inexplicable look.\n", - "\n", - "It strikes me occasionally, just as a scientific hypothesis, that\n", - "perhaps it is the paper!\n", - "\n", - "I have watched John when he did not know I was looking, and come into the\n", - "room suddenly on the most innocent excuses, and I’ve caught him several\n", - "times looking at the paper! And Jennie too. I caught Jennie with her hand\n", - "on it once.\n", - "\n", - "She didn’t know I was in the room, and when I asked her in a quiet, a very\n", - "quiet voice, with the most restrained manner possible, what she was doing\n", - "with the paper she turned around as if she had been caught stealing,\n", - "and looked quite angry—asked me why I should frighten her so!\n", - "\n", - "Then she said that the paper stained everything it touched, that she had\n", - "found yellow smooches on all my clothes and John’s, and she wished we\n", - "would be more careful!\n", - "\n", - "Did not that sound innocent? But I know she was studying that pattern, and\n", - "I am determined that nobody shall find it out but myself!\n", - "\n", - "Life is very much more exciting now than it used to be. You see I have\n", - "something more to expect, to look forward to, to watch. I really do eat\n", - "better, and am more quiet than I was.\n", - "\n", - "John is so pleased to see me improve! He laughed a little the other day,\n", - "and said I seemed to be flourishing in spite of my wallpaper.\n", - "\n", - "I turned it off with a laugh. I had no intention of telling him it was\n", - "because of the wallpaper—he would make fun of me. He might even\n", - "want to take me away.\n", - "\n", - "I don’t want to leave now until I have found it out. There is a week more,\n", - "and I think that will be enough.\n", - "\n", - "I’m feeling ever so much better! I don’t sleep much at night, for it is so\n", - "interesting to watch developments; but I sleep a good deal in the daytime.\n", - "\n", - "In the daytime it is tiresome and perplexing.\n", - "\n", - "There are always new shoots on the fungus, and new shades of yellow all\n", - "over it. I cannot keep count of them, though I have tried conscientiously.\n", - "\n", - "It is the strangest yellow, that wallpaper! It makes me think of all the\n", - "yellow things I ever saw—not beautiful ones like buttercups, but old\n", - "foul, bad yellow things.\n", - "\n", - "But there is something else about that paper—the smell! I noticed it\n", - "the moment we came into the room, but with so much air and sun it was not\n", - "bad. Now we have had a week of fog and rain, and whether the windows are\n", - "open or not, the smell is here.\n", - "\n", - "It creeps all over the house.\n", - "\n", - "I find it hovering in the dining-room, skulking in the parlor, hiding in\n", - "the hall, lying in wait for me on the stairs.\n", - "\n", - "It gets into my hair.\n", - "\n", - "Even when I go to ride, if I turn my head suddenly and surprise it—there\n", - "is that smell!\n", - "\n", - "Such a peculiar odor, too! I have spent hours in trying to analyze it, to\n", - "find what it smelled like.\n", - "\n", - "It is not bad—at first, and very gentle, but quite the subtlest,\n", - "most enduring odor I ever met.\n", - "\n", - "In this damp weather it is awful. I wake up in the night and find it\n", - "hanging over me.\n", - "\n", - "It used to disturb me at first. I thought seriously of burning the\n", - "house—to\n", - "reach the smell.\n", - "\n", - "But now I am used to it. The only thing I can think of that it is like is\n", - "the color of the paper! A yellow smell.\n", - "\n", - "There is a very funny mark on this wall, low down, near the mopboard. A\n", - "streak that runs round the room. It goes behind every piece of furniture,\n", - "except the bed, a long, straight, even smooch, as if it had been rubbed\n", - "over and over.\n", - "\n", - "I wonder how it was done and who did it, and what they did it for. Round\n", - "and round and round—round and round and round—it makes me\n", - "dizzy!\n", - "\n", - "I really have discovered something at last.\n", - "\n", - "Through watching so much at night, when it changes so, I have finally\n", - "found out.\n", - "\n", - "The front pattern does move—and no wonder! The woman behind shakes\n", - "it!\n", - "\n", - "Sometimes I think there are a great many women behind, and sometimes only\n", - "one, and she crawls around fast, and her crawling shakes it all over.\n", - "\n", - "Then in the very bright spots she keeps still, and in the very shady spots\n", - "she just takes hold of the bars and shakes them hard.\n", - "\n", - "And she is all the time trying to climb through. But nobody could climb\n", - "through that pattern—it strangles so; I think that is why it has so\n", - "many heads.\n", - "\n", - "They get through, and then the pattern strangles them off and turns them\n", - "upside-down, and makes their eyes white!\n", - "\n", - "If those heads were covered or taken off it would not be half so bad.\n", - "\n", - "I think that woman gets out in the daytime!\n", - "\n", - "And I’ll tell you why—privately—I’ve seen her!\n", - "\n", - "I can see her out of every one of my windows!\n", - "\n", - "It is the same woman, I know, for she is always creeping, and most women\n", - "do not creep by daylight.\n", - "\n", - "I see her on that long shaded lane, creeping up and down. I see her in\n", - "those\n", - "dark grape arbors, creeping all around the garden.\n", - "\n", - "I see her on that long road under the trees, creeping along, and when a\n", - "carriage comes she hides under the blackberry vines.\n", - "\n", - "I don’t blame her a bit. It must be very humiliating to be caught creeping\n", - "by daylight!\n", - "\n", - "I always lock the door when I creep by daylight. I can’t do it at night,\n", - "for I know John would suspect something at once.\n", - "\n", - "And John is so queer now, that I don’t want to irritate him. I wish he\n", - "would take another room! Besides, I don’t want anybody to get that woman\n", - "out at night but myself.\n", - "\n", - "I often wonder if I could see her out of all the windows at once.\n", - "\n", - "But, turn as fast as I can, I can only see out of one at one time.\n", - "\n", - "And though I always see her she may be able to creep faster than I can\n", - "turn!\n", - "\n", - "I have watched her sometimes away off in the open country, creeping as\n", - "fast as a cloud shadow in a high wind.\n", - "\n", - "If only that top pattern could be gotten off from the under one! I mean to\n", - "try it, little by little.\n", - "\n", - "I have found out another funny thing, but I shan’t tell it this time! It\n", - "does not do to trust people too much.\n", - "\n", - "There are only two more days to get this paper off, and I believe John is\n", - "beginning to notice. I don’t like the look in his eyes.\n", - "\n", - "And I heard him ask Jennie a lot of professional questions about me. She\n", - "had a very good report to give.\n", - "\n", - "She said I slept a good deal in the daytime.\n", - "\n", - "John knows I don’t sleep very well at night, for all I’m so quiet!\n", - "\n", - "He asked me all sorts of questions, too, and pretended to be very loving\n", - "and kind.\n", - "\n", - "As if I couldn’t see through him!\n", - "\n", - "Still, I don’t wonder he acts so, sleeping under this paper for three\n", - "months.\n", - "\n", - "It only interests me, but I feel sure John and Jennie are secretly\n", - "affected by it.\n", - "\n", - "Hurrah! This is the last day, but it is enough. John is to stay in town\n", - "over night, and won’t be out until this evening.\n", - "\n", - "Jennie wanted to sleep with me—the sly thing! but I told her I\n", - "should undoubtedly rest better for a night all alone.\n", - "\n", - "That was clever, for really I wasn’t alone a bit! As soon as it was\n", - "moonlight, and that poor thing began to crawl and shake the pattern, I got\n", - "up and ran to help her.\n", - "\n", - "I pulled and she shook, I shook and she pulled, and before morning we had\n", - "peeled off yards of that paper.\n", - "\n", - "A strip about as high as my head and half around the room.\n", - "\n", - "And then when the sun came and that awful pattern began to laugh at me I\n", - "declared I would finish it to-day!\n", - "\n", - "We go away to-morrow, and they are moving all my furniture down again to\n", - "leave things as they were before.\n", - "\n", - "Jennie looked at the wall in amazement, but I told her merrily that I did\n", - "it out of pure spite at the vicious thing.\n", - "\n", - "She laughed and said she wouldn’t mind doing it herself, but I must not\n", - "get tired.\n", - "\n", - "How she betrayed herself that time!\n", - "\n", - "But I am here, and no person touches this paper but me—not alive!\n", - "\n", - "She tried to get me out of the room—it was too patent! But I said it\n", - "was so quiet and empty and clean now that I believed I would lie down\n", - "again and sleep all I could; and not to wake me even for dinner—I\n", - "would call when I woke.\n", - "\n", - "So now she is gone, and the servants are gone, and the things are gone,\n", - "and there is nothing left but that great bedstead nailed down, with the\n", - "canvas mattress we found on it.\n", - "\n", - "We shall sleep downstairs to-night, and take the boat home to-morrow.\n", - "\n", - "I quite enjoy the room, now it is bare again.\n", - "\n", - "How those children did tear about here!\n", - "\n", - "This bedstead is fairly gnawed!\n", - "\n", - "But I must get to work.\n", - "\n", - "I have locked the door and thrown the key down into the front path.\n", - "\n", - "I don’t want to go out, and I don’t want to have anybody come in, till\n", - "John comes.\n", - "\n", - "I want to astonish him.\n", - "\n", - "I’ve got a rope up here that even Jennie did not find. If that woman does\n", - "get out, and tries to get away, I can tie her!\n", - "\n", - "But I forgot I could not reach far without anything to stand on!\n", - "\n", - "This bed will not move!\n", - "\n", - "I tried to lift and push it until I was lame, and then I got so angry I\n", - "bit off a little piece at one corner—but it hurt my teeth.\n", - "\n", - "Then I peeled off all the paper I could reach standing on the floor. It\n", - "sticks horribly and the pattern just enjoys it! All those strangled heads\n", - "and bulbous eyes and waddling fungus growths just shriek with derision!\n", - "\n", - "I am getting angry enough to do something desperate. To jump out of the\n", - "window would be admirable exercise, but the bars are too strong even to\n", - "try.\n", - "\n", - "Besides I wouldn’t do it. Of course not. I know well enough that a step\n", - "like that is improper and might be misconstrued.\n", - "\n", - "I don’t like to look out of the windows even—there are so many of\n", - "those creeping women, and they creep so fast.\n", - "\n", - "I wonder if they all come out of that wallpaper as I did?\n", - "\n", - "But I am securely fastened now by my well-hidden rope—you don’t get\n", - "me out in the road there!\n", - "\n", - "I suppose I shall have to get back behind the pattern when it comes night,\n", - "and that is hard!\n", - "\n", - "It is so pleasant to be out in this great room and creep around as I\n", - "please!\n", - "\n", - "I don’t want to go outside. I won’t, even if Jennie asks me to.\n", - "\n", - "For outside you have to creep on the ground, and everything is green\n", - "instead of yellow.\n", - "\n", - "But here I can creep smoothly on the floor, and my shoulder just fits in\n", - "that long smooch around the wall, so I cannot lose my way.\n", - "\n", - "Why, there’s John at the door!\n", - "\n", - "It is no use, young man, you can’t open it!\n", - "\n", - "How he does call and pound!\n", - "\n", - "Now he’s crying for an axe.\n", - "\n", - "It would be a shame to break down that beautiful door!\n", - "\n", - "“John dear!” said I in the gentlest voice, “the key is down by the front\n", - "steps, under a plantain leaf!”\n", - "\n", - "That silenced him for a few moments.\n", - "\n", - "Then he said—very quietly indeed, “Open the door, my darling!”\n", - "\n", - "“I can’t,” said I. “The key is down by the front door under a plantain\n", - "leaf!”\n", - "\n", - "And then I said it again, several times, very gently and slowly, and said\n", - "it so often that he had to go and see, and he got it, of course, and came\n", - "in. He stopped short by the door.\n", - "\n", - "“What is the matter?” he cried. “For God’s sake, what are you doing!”\n", - "\n", - "I kept on creeping just the same, but I looked at him over my shoulder.\n", - "\n", - "“I’ve got out at last,” said I, “in spite of you and Jane!\n", - "And I’ve pulled off most of the paper, so you can’t put me back!”\n", - "\n", - "Now why should that man have fainted? But he did, and right across my path\n", - "by the wall, so that I had to creep over him every time!\n", - "\n" - ] - } - ], - "source": [ - "print(filepath_of_text)\n", - "print(stopwords)\n", - "print(number_of_desired_words)\n", - "print(full_text)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Variable Names" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Though we named our variables `filepath_of_text`, `stopwords`,`number_of_desired_words`, and `full_text`, we could have named them almost anything else.\n", - "\n", - "Variable names can be as long or as short as you want, and they can include:\n", - "- upper and lower-case letters (A-Z)\n", - "- digits (0-9)\n", - "- underscores (_)\n", - "\n", - "However, variable names *cannot* include:\n", - "- ❌ other punctuation (-.!?@)\n", - "- ❌ spaces ( )\n", - "- ❌ a reserved Python word" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Instead of `filepath_of_text`, we could have simply named the variable `filepath`." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "'../texts/literature/The-Yellow-Wallpaper.txt'" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "filepath = \"../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt\"\n", - "filepath" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Or we could have gone even simpler and named the filepath `f`." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "'../texts/literature/The-Yellow-Wallpaper.txt'" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "f = \"../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt\"\n", - "f" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Striving for Good Variable Names" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "As you start to code, you will almost certainly be tempted to use extremely short variables names like `f`. Your fingers will get tired. Your coffee will wear off. You will see other people using variables like `f`. You'll promise yourself that you'll definitely remember what `f` means. But you probably won't.\n", - "\n", - "So, resist the temptation of bad variable names! Clear and precisely-named variables will:\n", - "\n", - "* make your code more readable (both to yourself and others)\n", - "* reinforce your understanding of Python and what's happening in the code\n", - "* clarify and strengthen your thinking\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Example Python Code ❌ With Unclear Variable Names❌**" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For the sake of illustration, here's some of our same word count Python code with poorly named variables. The code works exactly the same as our original code, but it's a lot harder to read." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "scrolled": true, - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [ - "def sp(t):\n", - " lt = t.lower()\n", - " sw = re.split(\"\\W+\", lt)\n", - " return sw\n", - "\n", - "f = \"../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt\"\n", - "ft = open(f, encoding=\"utf-8\").read()\n", - "\n", - "words = sp(ft)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "**Example Python Code ✨ With Clearer Variable Names ✨**" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [ - "def split_into_words(any_chunk_of_text):\n", - " lowercase_text = any_chunk_of_text.lower()\n", - " split_words = re.split(\"\\W+\", lowercase_text)\n", - " return split_words\n", - "\n", - "filepath_of_text = \"../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt\"\n", - "full_text = open(filepath_of_text, encoding=\"utf-8\").read()\n", - "\n", - "all_the_words = split_into_words(full_text)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Off-Limits Names" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The only variable names that are off-limits are names that are reserved by, or built into, the Python programming language itself — such as `print`, `True`, and `list`.\n", - "\n", - "This is not something to worry too much about. You'll know very quickly if a name is reserved by Python because it will show up in green and often give you an error message." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [ - { - "ename": "SyntaxError", - "evalue": "can't assign to keyword (, line 1)", - "output_type": "error", - "traceback": [ - "\u001b[0;36m File \u001b[0;32m\"\"\u001b[0;36m, line \u001b[0;32m1\u001b[0m\n\u001b[0;31m True = \"../texts/The-Yellow-Wallpaper.txt\"\u001b[0m\n\u001b[0m ^\u001b[0m\n\u001b[0;31mSyntaxError\u001b[0m\u001b[0;31m:\u001b[0m can't assign to keyword\n" - ] - } - ], - "source": [ - "True = \"../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Re-Assigning Variables" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Variable assignment does not set a variable in stone. You can later re-assign the same variable a different value." - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "For instance, I could re-assign `filepath_of_text` to the filepath for the lyrics of Beyonce's album *Lemonade* instead of Perkins-Gilman's \"The Yellow Wallpaper.\"" - ] - }, - { - "cell_type": "code", - "execution_count": 225, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [ - "filepath_of_text = \"../texts/music/Beyonce-Lemonade.txt\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If I change this one variable in our example code, then we get the most frequent words for *Lemonade*." - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": { - "scrolled": true, - "tags": [ - "output_scroll", - "hide-output" - ] - }, - "outputs": [ - { - "data": { - "text/plain": [ - "[('love', 93),\n", - " ('like', 50),\n", - " ('ain', 50),\n", - " ('slay', 49),\n", - " ('sorry', 44),\n", - " ('okay', 42),\n", - " ('oh', 38),\n", - " ('m', 37),\n", - " ('get', 32),\n", - " ('daddy', 28),\n", - " ('let', 28),\n", - " ('back', 24),\n", - " ('said', 22),\n", - " ('work', 21),\n", - " ('cause', 21),\n", - " ('ft', 21),\n", - " ('hold', 20),\n", - " ('night', 19),\n", - " ('feel', 19),\n", - " ('hurt', 19),\n", - " ('best', 19),\n", - " ('winner', 19),\n", - " ('every', 18),\n", - " ('bout', 18),\n", - " ('money', 17),\n", - " ('baby', 16),\n", - " ('boy', 16),\n", - " ('long', 16),\n", - " ('shoot', 16),\n", - " ('good', 16),\n", - " ('catch', 16),\n", - " ('know', 15),\n", - " ('ooh', 15),\n", - " ('got', 14),\n", - " ('come', 14),\n", - " ('pray', 14),\n", - " ('way', 13),\n", - " ('gon', 13),\n", - " ('kiss', 13),\n", - " ('re', 12)]" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "import re\n", - "from collections import Counter\n", - "\n", - "def split_into_words(any_chunk_of_text):\n", - " lowercase_text = any_chunk_of_text.lower()\n", - " split_words = re.split(\"\\W+\", lowercase_text)\n", - " return split_words\n", - "\n", - "filepath_of_text = \"../texts/music/Beyonce-Lemonade.txt\"\n", - "number_of_desired_words = 40\n", - "\n", - "stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',\n", - " 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',\n", - " 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',\n", - " 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are',\n", - " 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does',\n", - " 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until',\n", - " 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into',\n", - " 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down',\n", - " 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here',\n", - " 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more',\n", - " 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',\n", - " 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']\n", - "\n", - "full_text = open(filepath_of_text, encoding=\"utf-8\").read()\n", - "\n", - "all_the_words = split_into_words(full_text)\n", - "meaningful_words = [word for word in all_the_words if word not in stopwords]\n", - "meaningful_words_tally = Counter(meaningful_words)\n", - "most_frequent_meaningful_words = meaningful_words_tally.most_common(number_of_desired_words)\n", - "\n", - "most_frequent_meaningful_words" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Your Turn" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Ok now it's your turn to change some variables and calculate a new word frequency! First, pick a new text file from the list below:\n", - "- `\"../texts/music/Carly-Rae-Jepsen-Emotion.txt\"`\n", - "- `\"../texts/music/Mitski-Puberty-2.txt\"`\n", - "- `\"../texts/literature/Dracula_Bram-Stoker.txt\"`\n", - "- `\"../texts/literature/Little-Women_Louisa-May-Alcott.txt\"`\n", - "- `\"../texts/literature/Alice-in-Wonderland_Lewis-Carroll.txt\"`" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "````{admonition} **To choose from a wider list of files...**\n", - ":class: dropdown, tip\n", - "You can list all available files by running the command line function `ls`\n", - "```\n", - "!ls ../texts/music/\n", - "```\n", - "````" - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": { - "tags": [ - "hide-cell", - "output_scroll", - "hide-output" - ] - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "\u001b[31mAdele-21.txt\u001b[m\u001b[m\n", - "\u001b[31mBeyonce-Lemonade.txt\u001b[m\u001b[m\n", - "\u001b[31mCarly-Rae-Jepsen-Emotion.txt\u001b[m\u001b[m\n", - "\u001b[31mDrake-Take-Care.txt\u001b[m\u001b[m\n", - "\u001b[31mHamilton-Musical.txt\u001b[m\u001b[m\n", - "\u001b[31mHarry-Styles-Fine-Line.txt\u001b[m\u001b[m\n", - "\u001b[31mKendrick-Lamar-To-Pimp-a-Butterfly.txt\u001b[m\u001b[m\n", - "\u001b[31mLin-Manuel-Miranda-In-the-Heights.txt\u001b[m\u001b[m\n", - "\u001b[31mLizzo-Cuz-I-Love-You.txt\u001b[m\u001b[m\n", - "\u001b[31mMac-Miller-Circles.txt\u001b[m\u001b[m\n", - "\u001b[31mMitski-Puberty-2.txt\u001b[m\u001b[m\n", - "\u001b[31mTaylor-Swift-Red.txt\u001b[m\u001b[m\n", - "\u001b[31mThe-Beatles-Sgt-Peppers-Lonely-Hearts-Club-Band.txt\u001b[m\u001b[m\n" - ] - } - ], - "source": [ - "!ls ../texts/music/" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Then assign `filepath_of_text` to the corresponding filepath below. Be sure to explore what happens when you change the values for `number_of_desired_words` and `stopwords`, as well." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "tags": [ - "hide-output" - ] - }, - "outputs": [], - "source": [ - "import re\n", - "from collections import Counter\n", - "\n", - "def split_into_words(any_chunk_of_text):\n", - " lowercase_text = any_chunk_of_text.lower()\n", - " split_words = re.split(\"\\W+\", lowercase_text)\n", - " return split_words\n", - "\n", - "filepath_of_text = #Insert a New Text File Here\n", - "number_of_desired_words = #Change number of desired words\n", - "\n", - "#Explore how the stopwords below affect word frequency by adding or removing stopwords\n", - "stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',\n", - " 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',\n", - " 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',\n", - " 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are',\n", - " 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does',\n", - " 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until',\n", - " 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into',\n", - " 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down',\n", - " 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here',\n", - " 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more',\n", - " 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',\n", - " 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']\n", - "\n", - "full_text = open(filepath_of_text, encoding=\"utf-8\").read()\n", - "\n", - "all_the_words = split_into_words(full_text)\n", - "meaningful_words = [word for word in all_the_words if word not in stopwords]\n", - "meaningful_words_tally = Counter(meaningful_words)\n", - "most_frequent_meaningful_words = meaningful_words_tally.most_common(number_of_desired_words)\n", - "\n", - "most_frequent_meaningful_words" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.12.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/_to_be_deleted_later/admonition_boxes.html b/_to_be_deleted_later/admonition_boxes.html index 67c961b8..2d253626 100644 --- a/_to_be_deleted_later/admonition_boxes.html +++ b/_to_be_deleted_later/admonition_boxes.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/_to_be_deleted_later/intro_old.html b/_to_be_deleted_later/intro_old.html index 21d7e290..c3e7d56e 100644 --- a/_to_be_deleted_later/intro_old.html +++ b/_to_be_deleted_later/intro_old.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/_to_be_deleted_later/markdown-notebooks.html b/_to_be_deleted_later/markdown-notebooks.html index f86026ed..83c536ba 100644 --- a/_to_be_deleted_later/markdown-notebooks.html +++ b/_to_be_deleted_later/markdown-notebooks.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/_to_be_deleted_later/markdown.html b/_to_be_deleted_later/markdown.html index 243d295c..4ed56346 100644 --- a/_to_be_deleted_later/markdown.html +++ b/_to_be_deleted_later/markdown.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/_to_be_deleted_later/notebooks.html b/_to_be_deleted_later/notebooks.html index 4ba95ccf..070b5d79 100644 --- a/_to_be_deleted_later/notebooks.html +++ b/_to_be_deleted_later/notebooks.html @@ -223,10 +223,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • @@ -481,7 +478,7 @@

    Code blocks and outputs
    -
    <contextlib.ExitStack at 0x7f9e08ac2d50>
    +
    <contextlib.ExitStack at 0x7f70d9914770>
     
    diff --git a/docs/101/01_data_types.html b/docs/101/01_data_types.html index e7815d3c..2d4db310 100644 --- a/docs/101/01_data_types.html +++ b/docs/101/01_data_types.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/101/02_variables_and_assignment.html b/docs/101/02_variables_and_assignment.html index f4a6f320..874694fd 100644 --- a/docs/101/02_variables_and_assignment.html +++ b/docs/101/02_variables_and_assignment.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/101/03_type_conversion.html b/docs/101/03_type_conversion.html index 6b71928c..5455ecbe 100644 --- a/docs/101/03_type_conversion.html +++ b/docs/101/03_type_conversion.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/101/04_built-in_functions.html b/docs/101/04_built-in_functions.html index beb4a889..66328212 100644 --- a/docs/101/04_built-in_functions.html +++ b/docs/101/04_built-in_functions.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/101/05_lists.html b/docs/101/05_lists.html index 16deeccc..28af6125 100644 --- a/docs/101/05_lists.html +++ b/docs/101/05_lists.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/101/06_for_loops.html b/docs/101/06_for_loops.html index 61767331..62f45d58 100644 --- a/docs/101/06_for_loops.html +++ b/docs/101/06_for_loops.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/101/07_conditionals.html b/docs/101/07_conditionals.html index 4826f6f0..2852e550 100644 --- a/docs/101/07_conditionals.html +++ b/docs/101/07_conditionals.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/101/part1.html b/docs/101/part1.html index fba70d81..40c8a167 100644 --- a/docs/101/part1.html +++ b/docs/101/part1.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/101/part2.html b/docs/101/part2.html index fcda49d9..534e0614 100644 --- a/docs/101/part2.html +++ b/docs/101/part2.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • @@ -441,7 +438,7 @@

    Contents

    Part 2#

    Python for Absolute Beginners, Part 2.

    -

    In this second part of our introduction to Python, you will build on the foundations from Part 1 to start writing short scripts. By the end of this course, you will even have the opportunity to create a small game!

    +

    In this second part of our introduction to Python, you will build on the foundations from Part 1 to start writing short scripts. By the end of this course, you will even have the opportunity to create a small game!

    To participate in this course, it is essential that you either have completed Part 1 or possess an understanding of the topics covered there. This will ensure that you are well prepared to take full advantage of the more advanced concepts in Part 2.


    diff --git a/docs/_test/2024_ods.html b/docs/_test/2024_ods.html index 9b1032aa..0e78fe33 100644 --- a/docs/_test/2024_ods.html +++ b/docs/_test/2024_ods.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/_test/regex_and_frankenstein.html b/docs/_test/regex_and_frankenstein.html index d9105d90..f88484af 100644 --- a/docs/_test/regex_and_frankenstein.html +++ b/docs/_test/regex_and_frankenstein.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/howto/dictionaries.html b/docs/howto/dictionaries.html index ba241e9b..b258ff7e 100644 --- a/docs/howto/dictionaries.html +++ b/docs/howto/dictionaries.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/howto/dictionary_101.html b/docs/howto/dictionary_101.html index 9808a2ff..759c1043 100644 --- a/docs/howto/dictionary_101.html +++ b/docs/howto/dictionary_101.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/howto/dictionary_pandas.html b/docs/howto/dictionary_pandas.html index 01ecefe5..375d60c3 100644 --- a/docs/howto/dictionary_pandas.html +++ b/docs/howto/dictionary_pandas.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/howto/help_and_documentation.html b/docs/howto/help_and_documentation.html index be8f451d..a50bbb9b 100644 --- a/docs/howto/help_and_documentation.html +++ b/docs/howto/help_and_documentation.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/howto/interact.html b/docs/howto/interact.html index 7b334250..b206fe70 100644 --- a/docs/howto/interact.html +++ b/docs/howto/interact.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/howto/interact_original.html b/docs/howto/interact_original.html index f7fcecee..8562a163 100644 --- a/docs/howto/interact_original.html +++ b/docs/howto/interact_original.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/howto/jupyterlab.html b/docs/howto/jupyterlab.html index c7569a4b..fd811c60 100644 --- a/docs/howto/jupyterlab.html +++ b/docs/howto/jupyterlab.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • @@ -437,8 +434,8 @@

    Contents

    Get Started with JupyterLab#

    This resource is designed to help you navigate and make the most of JupyterLab, whether you are just getting started or looking to enhance your workflow.

    -

    In the “Open and Navigate JupyterLab” section, you will find essential tips on opening files, managing your workspace, and saving your work effectively.

    -

    The “Code in JupyterLab” section provides a deeper dive into running code cells, understanding the different modes, and efficiently organizing your notebook through creating, deleting, and moving cells. You will also learn about useful features like auto-closing brackets and managing kernels.

    +

    In the Open and Navigate JupyterLab section, you will find essential tips on opening files, managing your workspace, and saving your work effectively.

    +

    The Code in JupyterLab section provides a deeper dive into running code cells, understanding the different modes, and efficiently organizing your notebook through creating, deleting, and moving cells. You will also learn about useful features like auto-closing brackets and managing kernels.

    For more in-depth information, visit the official JupyterLab User Guide.


    diff --git a/docs/howto/jupyterlab_1.html b/docs/howto/jupyterlab_1.html index 3129f13e..07a09a96 100644 --- a/docs/howto/jupyterlab_1.html +++ b/docs/howto/jupyterlab_1.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/howto/jupyterlab_2.html b/docs/howto/jupyterlab_2.html index f4854232..9db60415 100644 --- a/docs/howto/jupyterlab_2.html +++ b/docs/howto/jupyterlab_2.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/howto/setup.html b/docs/howto/setup.html index a73cb667..967e47e5 100644 --- a/docs/howto/setup.html +++ b/docs/howto/setup.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/howto/sign_up.html b/docs/howto/sign_up.html index 7188f658..7f89ec77 100644 --- a/docs/howto/sign_up.html +++ b/docs/howto/sign_up.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/intro.html b/docs/intro.html index 6419e5a9..6308e817 100644 --- a/docs/intro.html +++ b/docs/intro.html @@ -222,10 +222,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/pandas/00_pandas_start.html b/docs/pandas/00_pandas_start.html index 3119a6a1..de418410 100644 --- a/docs/pandas/00_pandas_start.html +++ b/docs/pandas/00_pandas_start.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/docs/pandas/01_pandas_dataframe.html b/docs/pandas/01_pandas_dataframe.html index 90078024..be0f768c 100644 --- a/docs/pandas/01_pandas_dataframe.html +++ b/docs/pandas/01_pandas_dataframe.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • @@ -456,6 +453,22 @@

    Contents

    Pandas DataFrame#

    +
    +

    Learning Objectives

    +

    Questions:

    +
      +
    • What is a Pandas DataFrame?

    • +
    • How is a DataFrame used to manage and manipulate data?

    • +
    +

    Objectives:

    +
      +
    • Understand the structure and purpose of a DataFrame.

    • +
    • Create a DataFrame from lists.

    • +
    • Perform basic DataFrame manipulations, such as renaming columns and transposing data.

    • +
    • Understand the structure and purpose of a Pandas Series.

    • +
    • Append Series as columns to an existing DataFrame and create new columns based on existing data.

    • +
    +

    Import Pandas#

    diff --git a/docs/pandas/02_Pandas_tabular_data.html b/docs/pandas/02_Pandas_tabular_data.html index e1dc296f..7d210265 100644 --- a/docs/pandas/02_Pandas_tabular_data.html +++ b/docs/pandas/02_Pandas_tabular_data.html @@ -32,7 +32,7 @@ - + @@ -219,10 +219,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • @@ -450,6 +447,21 @@

    Contents

    Read and Write Tabular Data#

    +
    +

    Learning Objectives

    +

    Questions:

    +
      +
    • How can we read, inspect, and export tabular data using Pandas?

    • +
    +

    Objectives:

    +
      +
    • Load tabular data from a spreadsheet into a DataFrame.

    • +
    • Inspect the structure and contents of your dataset.

    • +
    • Identify missing data within your dataset.

    • +
    • Apply filters to extract specific subsets of data based on conditions.

    • +
    • Save and export your dataset to various file formats.

    • +
    +

    How to read and write tabular data

    Download the Titanic data#

    @@ -1913,7 +1925,7 @@

    Reading and writing Excel files

    Key points#

      -
    • Getting data in to pandas from many different file formats or data sources is supported by read_* functions.

    • +
    • Reading data into Pandas from many different file formats or data sources is supported by read_* functions.

    • The head(), tail(), and info() methods are convenient for a first check.

    • The notna() and isna() methods are useful for finding and isolating missing data.

    • Exporting data out of pandas is provided by different to_* methods.

    • diff --git a/docs/pandas/02_pandas_tabular_data.html b/docs/pandas/02_pandas_tabular_data.html index 1b7d3a37..3af4b1a6 100644 --- a/docs/pandas/02_pandas_tabular_data.html +++ b/docs/pandas/02_pandas_tabular_data.html @@ -221,10 +221,7 @@
    • Read and Write Tabular Data
    • Subsets
    • Summary Statistics
    • -
    • Basic Plotting in Pandas
    • -
    • Out: loc and iloc
    • -
    • Out: Subsets
    • -
    • Out: Variables
    • +
    • Basic Visualisations in Pandas
    @@ -452,6 +449,21 @@

    Contents

    Read and Write Tabular Data#

    +
    +

    Learning Objectives

    +

    Questions:

    +
      +
    • How can we read, inspect, and export tabular data using Pandas?

    • +
    +

    Objectives:

    +
      +
    • Load tabular data from a spreadsheet into a DataFrame.

    • +
    • Inspect the structure and contents of your dataset.

    • +
    • Identify missing data within your dataset.

    • +
    • Apply filters to extract specific subsets of data based on conditions.

    • +
    • Save and export your dataset to various file formats.

    • +
    +

    How to read and write tabular data

    Download the Titanic data#

    @@ -1915,7 +1927,7 @@

    Reading and writing Excel files

    Key points#

      -
    • Getting data in to pandas from many different file formats or data sources is supported by read_* functions.

    • +
    • Reading data into Pandas from many different file formats or data sources is supported by read_* functions.

    • The head(), tail(), and info() methods are convenient for a first check.

    • The notna() and isna() methods are useful for finding and isolating missing data.

    • Exporting data out of pandas is provided by different to_* methods.

    • diff --git a/docs/pandas/03_Pandas_subsets.html b/docs/pandas/03_Pandas_subsets.html index d940c722..bebad8ce 100644 --- a/docs/pandas/03_Pandas_subsets.html +++ b/docs/pandas/03_Pandas_subsets.html @@ -219,10 +219,7 @@
    • Read and Write Tabular Data
    • Subsets
    • Summary Statistics
    • -
    • Introduction to Pandas .plot() Method
    • -
    • Out: loc and iloc
    • -
    • Out: Subsets
    • -
    • Out: Variables
    • +
    • Basic Visualisations in Pandas
    @@ -439,7 +436,6 @@

    Contents

  • Combining loc and iloc
  • -
  • Summary
  • Key points
  • @@ -454,6 +450,21 @@

    Contents

    Subsets#

    +
    +

    Learning Objectives

    +

    Questions:

    +
      +
    • How can we select and filter specific columns and rows in a DataFrame?

    • +
    +

    Objectives:

    +
      +
    • Select specific columns from a DataFrame using square bracket notation.

    • +
    • Use the loc property for label-based indexing in a DataFrame.

    • +
    • Use the iloc property for position-based indexing in a DataFrame.

    • +
    • Filter rows based on the presence or absence of missing values.

    • +
    • Understand the differences and complementary uses of loc and iloc.

    • +
    +

    Import Pandas#

    @@ -2331,34 +2342,14 @@

    Combining loc

    -
    -

    Summary#

    -

    Using .loc[] and .iloc[] allows you to write clearer, more precise code for selecting and manipulating data in Pandas. Whether you are filtering rows based on complex conditions or selecting specific rows and columns simultaneously, these tools offer the flexibility and reliability you need for more advanced data manipulation tasks.

    -

    Key points#

      -
    • Selecting columns:

      -
        -
      • Access a single column or multiple columns from a DataFrame using square bracket notation ([]).

      • -
      -
    • -
    • Selecting subsets of data:

      -
        -
      • Use .loc[] for label-based indexing and .iloc[] for position-based indexing to select specific rows and columns.

      • -
      -
    • -
    • Slicing:

      -
        +
      • Access a single column or multiple columns from a DataFrame using square bracket notation ([]).

      • +
      • Use label-based indexing (.loc[]) and position-based indexing (.iloc[]) to select specific rows and columns.

      • Slicing with .loc[] is inclusive, while slicing with .iloc[] is exclusive.

      • -
      -
    • -
    • Filtering data:

      -
        -
      • Filter rows based on conditions using .loc[] and .iloc[], and apply additional conditions or select specific columns within the same operation.

      • -
      -
    • +
    • Filter rows based on conditions and apply additional conditions or select specific columns within the same operation.

    @@ -2446,7 +2437,6 @@

    Key pointsCombining loc and iloc -
  • Summary
  • Key points
  • diff --git a/docs/pandas/03_pandas_subsets.html b/docs/pandas/03_pandas_subsets.html index 0a440d0e..1a4b9865 100644 --- a/docs/pandas/03_pandas_subsets.html +++ b/docs/pandas/03_pandas_subsets.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • @@ -441,7 +438,6 @@

    Contents

  • Combining loc and iloc
  • -
  • Summary
  • Key points
  • @@ -456,6 +452,21 @@

    Contents

    Subsets#

    +
    +

    Learning Objectives

    +

    Questions:

    +
      +
    • How can we select and filter specific columns and rows in a DataFrame?

    • +
    +

    Objectives:

    +
      +
    • Select specific columns from a DataFrame using square bracket notation.

    • +
    • Use the loc property for label-based indexing in a DataFrame.

    • +
    • Use the iloc property for position-based indexing in a DataFrame.

    • +
    • Filter rows based on the presence or absence of missing values.

    • +
    • Understand the differences and complementary uses of loc and iloc.

    • +
    +

    Import Pandas#

    @@ -2333,34 +2344,14 @@

    Combining loc

    -
    -

    Summary#

    -

    Using .loc[] and .iloc[] allows you to write clearer, more precise code for selecting and manipulating data in Pandas. Whether you are filtering rows based on complex conditions or selecting specific rows and columns simultaneously, these tools offer the flexibility and reliability you need for more advanced data manipulation tasks.

    -

    Key points#

      -
    • Selecting columns:

      -
        -
      • Access a single column or multiple columns from a DataFrame using square bracket notation ([]).

      • -
      -
    • -
    • Selecting subsets of data:

      -
        -
      • Use .loc[] for label-based indexing and .iloc[] for position-based indexing to select specific rows and columns.

      • -
      -
    • -
    • Slicing:

      -
        +
      • Access a single column or multiple columns from a DataFrame using square bracket notation ([]).

      • +
      • Use label-based indexing (.loc[]) and position-based indexing (.iloc[]) to select specific rows and columns.

      • Slicing with .loc[] is inclusive, while slicing with .iloc[] is exclusive.

      • -
      -
    • -
    • Filtering data:

      -
        -
      • Filter rows based on conditions using .loc[] and .iloc[], and apply additional conditions or select specific columns within the same operation.

      • -
      -
    • +
    • Filter rows based on conditions and apply additional conditions or select specific columns within the same operation.

    @@ -2448,7 +2439,6 @@

    Key pointsCombining loc and iloc -
  • Summary
  • Key points
  • diff --git a/docs/pandas/04_pandas_summary_statistics.html b/docs/pandas/04_pandas_summary_statistics.html index 297566db..b82f3b9c 100644 --- a/docs/pandas/04_pandas_summary_statistics.html +++ b/docs/pandas/04_pandas_summary_statistics.html @@ -61,7 +61,7 @@ - + @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • @@ -441,6 +438,19 @@

    Contents

    Summary Statistics#

    +
    +

    Learning Objectives

    +

    Questions:

    +
      +
    • How can we calculate and analyse summary statistics using Pandas?

    • +
    +

    Objectives:

    +
      +
    • Use built-in methods for descriptive statistics.

    • +
    • Use the split-apply-combind pattern to perform descriptive statistics on groupings of data.

    • +
    • Use different count methods on groupings of data.

    • +
    +

    Import Pandas#

    @@ -733,7 +743,7 @@

    Aggregating statistics

    The statistic applied to multiple columns of a DataFrame (the selection of two columns returns a DataFrame, see the Subsets tutorial) is calculated for each numeric column.

    -

    Multiple aggregating statistics can easily be calculated for one or more columns at the same time. For this we can use the describe() function.

    +

    Multiple descriptive statistics can easily be calculated for one or more columns at the same time. For this we can use the describe() method.

    titanic[["Age", "Fare"]].describe()
    @@ -1206,7 +1216,7 @@ 

    Key points

    next

    -

    Basic Plotting in Pandas

    +

    Basic Visualisations in Pandas

    diff --git a/docs/pandas/05_pandas_plot.html b/docs/pandas/05_pandas_plot.html index 226fc1c1..4ab75ef8 100644 --- a/docs/pandas/05_pandas_plot.html +++ b/docs/pandas/05_pandas_plot.html @@ -8,7 +8,7 @@ - Basic Plotting in Pandas — KUB Datalab - Python + Basic Visualisations in Pandas — KUB Datalab - Python @@ -61,7 +61,6 @@ - @@ -221,10 +220,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • @@ -412,7 +408,7 @@
    -

    Basic Plotting in Pandas

    +

    Basic Visualisations in Pandas

    @@ -434,7 +430,7 @@

    Contents

  • Customising plots
  • -
  • Conclusion
  • +
  • Key points
  • @@ -446,8 +442,20 @@

    Contents

    -
    -

    Basic Plotting in Pandas#

    +
    +

    Basic Visualisations in Pandas#

    +
    +

    Learning Objectives

    +

    Questions:

    +
      +
    • How to get started with plotting using Pandas.

    • +
    +

    Objectives:

    +
      +
    • Understand the basics of the .plot() syntax.

    • +
    • Visualise your data with various plots.

    • +
    +

    Plotting in Pandas

    -
    -

    Conclusion#

    -

    While plotting with Pandas is often done using the matplotlib library, Pandas’ .plot() method is a versatile tool for quickly generating a wide range of plots directly from your data. Whether you’re creating simple line plots, bar charts, or more complex visualisations like scatter plots and histograms, .plot() provides an efficient interface for data visualisation. This method simplifies the process of plotting while offering a good level of customisation, making it suitable for both quick exploratory analysis and more polished, presentation-ready graphics.

    +
    +
    +

    Key points#

    +
      +
    • Pandas’ .plot() method is a tool for quickly generating a wide range of plots directly from your data.

    • +
    • It supports various types of plots, including line plots, bar charts, scatter plots, and histograms.

    • +
    • The .plot() method allows for both quick exploratory analysis and more polished, presentation-ready graphics.

    • +
    • For more elaborate and detailed plotting, consider using the matplotlib library directly.

    • +
    @@ -622,15 +636,6 @@

    ConclusionSummary Statistics

    - -
    -

    next

    -

    Out: loc and iloc

    -
    - -
    @@ -659,7 +664,7 @@

    ConclusionCustomising plots -
  • Conclusion
  • +
  • Key points
  • diff --git a/docs/pandas/getting_started.html b/docs/pandas/getting_started.html index bbb78f7e..136b8dcc 100644 --- a/docs/pandas/getting_started.html +++ b/docs/pandas/getting_started.html @@ -221,10 +221,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • @@ -422,6 +419,7 @@

    Contents

    @@ -440,6 +438,13 @@

    Contents

    }

    Getting Started with Data Analysis#

    +

    Pandas is a library for Python, which is tailored to enable coders to handle tabular data (and is used widely in conjunction with other Python libraries including the machine-learning package, SciKitLearn, and the mathematics-oriented Numpy). Pandas’ tabular data take the form of DataFrames: Python’s version of an Excel spreadsheet. This object and the various methods associated with it will be the central focus.

    +

    Building on the knowledge you have accumulated in the introductory courses, Getting Started with Data Analysis will teach you how to import, analyse, and visualise data in Pandas. For those that are interested and have some experience coding in Python, check out our Python for Absolute Beginners Part 1 and Part 2 materials. If these seem manageable, please feel free to hop right into this class.

    +
    +

    Download the Titanic data#

    +

    For much of this course, we will be working with the Titanic dataset. The full dataset can be found on Kaggle, but we will only be using the training data, which we have made available here.

    +

    To follow the exercises and use the code exactly as written below, you will need to download the data and place it in a folder called ‘data’ in the same directory as your Jupyter notebook. In other words, the folder where your notebook is located should contain a subfolder named ‘data’, which holds the file ‘titanic.csv’.

    +

    Content#

    @@ -450,10 +455,7 @@

    Content#<
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • @@ -523,6 +525,7 @@

    Content#<

    diff --git a/docs/pandas/xx_03_pandas_subsets.html b/docs/pandas/xx_03_pandas_subsets.html deleted file mode 100644 index 0233572a..00000000 --- a/docs/pandas/xx_03_pandas_subsets.html +++ /dev/null @@ -1,2129 +0,0 @@ - - - - - - - - - - - Out: Subsets — KUB Datalab - Python - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - -
    -
    -
    -
    -
    - -
    - -
    - - - - - -
    -
    - - - -
    - - - - - - - - - - - - - -
    - -
    - - - -
    - -
    -
    - -
    -
    - -
    - -
    - -
    - - -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    - - - - - - - - -
    - -
    -

    Out: Subsets#

    -
    -

    Import Pandas#

    -
    -
    -
    # This line imports the pandas library and aliases it as 'pd'.
    -
    -import pandas as pd
    -
    -
    -
    -
    -
    -
    -
    -

    Creating a DataFrame from a CSV file#

    -

    The pd.read_csv() function is used to read the data from the file ‘data/titanic.csv’.

    -
    -
    -
    # Load the Titanic dataset from a CSV file into a DataFrame named 'titanic'.
    -
    -titanic = pd.read_csv('data/titanic.csv')
    -
    -
    -
    -
    -
    -
    -
    # Display the DataFrame 'titanic'.
    -
    -titanic
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
    0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
    1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
    2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
    3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
    4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
    .......................................
    88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
    88788811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42S
    88888903Johnston, Miss. Catherine Helen "Carrie"femaleNaN12W./C. 660723.4500NaNS
    88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
    89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
    -

    891 rows × 12 columns

    -
    -
    -
    -
    -
    -
    -

    Selecting specific columns#

    -

    Selecting specific columns from a DataFrame

    -

    Access the ‘Age’ column from the DataFrame ‘titanic’ to return a Series object containing all the data in the ‘Age’ column:

    -
    -
    -
    titanic['Age']
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    0      22.0
    -1      38.0
    -2      26.0
    -3      35.0
    -4      35.0
    -       ... 
    -886    27.0
    -887    19.0
    -888     NaN
    -889    26.0
    -890    32.0
    -Name: Age, Length: 891, dtype: float64
    -
    -
    -
    -
    -
    -
    -
    -
    # Check the type of the 'Age' column in 'titanic' using the 'type()' function.
    -
    -type(titanic['Age'])
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    pandas.core.series.Series
    -
    -
    -
    -
    -
    -

    Use the shape attribute to determine the dimensions of the Series.
    -It returns a tuple representing the number of rows and columns (rows, columns).

    -
    -
    -
    titanic['Age'].shape
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    (891,)
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Calling multiple Series#

    -

    Select columns ‘Age’ and ‘Sex’ from the ‘titanic’ DataFrame using double square brackets:

    -
    -
    -
    # Select the columns 'Age' and 'Sex' from the 'titanic' DataFrame.
    -
    -titanic[['Age', 'Sex']]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    AgeSex
    022.0male
    138.0female
    226.0female
    335.0female
    435.0male
    .........
    88627.0male
    88719.0female
    888NaNfemale
    88926.0male
    89032.0male
    -

    891 rows × 2 columns

    -
    -
    -
    -
    -

    Note

    -

    The inner square brackets define a Python list with column names, whereas the outer square brackets are used to select the data from a pandas DataFrame as seen in the previous example.

    -
    -

    Select columns ‘Age’ and ‘Sex’ from the ‘titanic’ DataFrame using double square brackets, and then apply the type() function to the resulting DataFrame subset:

    -
    -
    -
    # Use the 'type()' function to determine the data type of the DataFrame subset.
    -
    -type(titanic[['Age', 'Sex']])
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    pandas.core.frame.DataFrame
    -
    -
    -
    -
    -
    -

    Select columns ‘Age’ and ‘Sex’ from the ‘titanic’ DataFrame using double square brackets, and then apply the shape attribute to the resulting DataFrame subset:

    -
    -
    -
    # Use the 'shape' attribute to determine the dimensions of the DataFrame subset.
    -
    -titanic[['Age', 'Sex']].shape
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    (891, 2)
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Filtering rows based on conditional expressions#

    -

    Filtering specific rows from a DataFrame

    -

    We can use filtering to extract subsets of a DataFrame.

    -

    To select rows based on a conditional expression, use a condition inside the selection brackets [].
    -The condition inside the selection brackets checks for rows where the specified column’s values exceed a certain threshold.

    -

    The code below returns a subset of the DataFrame containing only the rows where the ‘Age’ column has a value greater than 35.

    -
    -
    -
    # Filter rows in the 'titanic' DataFrame where the 'Age' column is greater than 35.
    -
    -titanic[titanic['Age'] > 35]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
    1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
    6701McCarthy, Mr. Timothy Jmale54.0001746351.8625E46S
    111211Bonnell, Miss. Elizabethfemale58.00011378326.5500C103S
    131403Andersson, Mr. Anders Johanmale39.01534708231.2750NaNS
    151612Hewlett, Mrs. (Mary D Kingcome)female55.00024870616.0000NaNS
    .......................................
    86586612Bystrom, Mrs. (Karolina)female42.00023685213.0000NaNS
    87187211Beckwith, Mrs. Richard Leonard (Sallie Monypeny)female47.0111175152.5542D35S
    87387403Vander Cruyssen, Mr. Victormale47.0003457659.0000NaNS
    87988011Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)female56.0011176783.1583C50C
    88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.1250NaNQ
    -

    217 rows × 12 columns

    -
    -
    -
    -

    What happens inside the square brackets is that Pandas evaluates the condition ‘titanic[‘Age’] > 35’ element-wise, resulting in a boolean Series where True indicates that the corresponding passenger’s age is greater than 35.

    -

    This is called a boolean mask.

    -
    -
    -
    # Create a boolean mask to filter rows where the age of passengers is greater than 35.
    -
    -titanic['Age'] > 35
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    0      False
    -1       True
    -2      False
    -3      False
    -4      False
    -       ...  
    -886    False
    -887    False
    -888    False
    -889    False
    -890    False
    -Name: Age, Length: 891, dtype: bool
    -
    -
    -
    -
    -
    -

    We can also use the isin() method to create a boolean mask, where True indicates that the corresponding ‘Pclass’ value is present in the specified list ‘[2, 3]’.

    -
    -
    -
    # Filter rows in the 'titanic' DataFrame where the 'Pclass' column values are either 2 or 3.
    -
    -titanic[titanic['Pclass'].isin([2, 3])]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
    0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
    2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
    4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
    5603Moran, Mr. JamesmaleNaN003308778.4583NaNQ
    7803Palsson, Master. Gosta Leonardmale2.03134990921.0750NaNS
    .......................................
    88488503Sutehall, Mr. Henry Jrmale25.000SOTON/OQ 3920767.0500NaNS
    88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.1250NaNQ
    88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
    88888903Johnston, Miss. Catherine Helen "Carrie"femaleNaN12W./C. 660723.4500NaNS
    89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
    -

    675 rows × 12 columns

    -
    -
    -
    -
    -

    Note

    -

    The above is equivalent to filtering by rows for which the class is either 2 or 3 and combining the two statements with an | (OR) operator.

    -

    When combining multiple conditional statements, each condition must be surrounded by parentheses ().
    -Moreover, you can not use or/and but need to use the OR operator | and the AND operator &.

    -
    -

    The following code uses boolean indexing with logical OR (|) to create a mask, where True indicates that the corresponding ‘Pclass’ value is either 2 or 3.

    -
    -
    -
    # Filter rows in the 'titanic' DataFrame where the 'Pclass' column values are either 2 or 3.
    -
    -titanic[(titanic['Pclass'] == 2) | (titanic['Pclass'] == 3)]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
    0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
    2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
    4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
    5603Moran, Mr. JamesmaleNaN003308778.4583NaNQ
    7803Palsson, Master. Gosta Leonardmale2.03134990921.0750NaNS
    .......................................
    88488503Sutehall, Mr. Henry Jrmale25.000SOTON/OQ 3920767.0500NaNS
    88588603Rice, Mrs. William (Margaret Norton)female39.00538265229.1250NaNQ
    88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
    88888903Johnston, Miss. Catherine Helen "Carrie"femaleNaN12W./C. 660723.4500NaNS
    89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
    -

    675 rows × 12 columns

    -
    -
    -
    -

    Remember that the notna() conditional function returns a True for each row where the values are not a ‘null’ value (NaN).
    -As such, this can be combined with the selection brackets [] to filter the data table.

    -

    Filter rows in the ‘titanic’ DataFrame where ‘Embarked’ values are not null (not NaN).
    -notna() returns True for non-null values, allowing us to select rows with valid embarkation data.

    -
    -
    -
    titanic[titanic['Embarked'].notna()]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
    0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
    1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
    2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
    3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
    4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
    .......................................
    88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
    88788811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42S
    88888903Johnston, Miss. Catherine Helen "Carrie"femaleNaN12W./C. 660723.4500NaNS
    88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
    89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
    -

    889 rows × 12 columns

    -
    -
    -
    -

    We can compare the number of extracted rows with the number from the original DataFrame:

    -
    -
    -
    titanic.info()
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    <class 'pandas.core.frame.DataFrame'>
    -RangeIndex: 891 entries, 0 to 890
    -Data columns (total 12 columns):
    - #   Column       Non-Null Count  Dtype  
    ----  ------       --------------  -----  
    - 0   PassengerId  891 non-null    int64  
    - 1   Survived     891 non-null    int64  
    - 2   Pclass       891 non-null    int64  
    - 3   Name         891 non-null    object 
    - 4   Sex          891 non-null    object 
    - 5   Age          714 non-null    float64
    - 6   SibSp        891 non-null    int64  
    - 7   Parch        891 non-null    int64  
    - 8   Ticket       891 non-null    object 
    - 9   Fare         891 non-null    float64
    - 10  Cabin        204 non-null    object 
    - 11  Embarked     889 non-null    object 
    -dtypes: float64(2), int64(5), object(5)
    -memory usage: 83.7+ KB
    -
    -
    -
    -
    -
    -

    Comparing the two number of rows (889 and 891) tells us, that two rows are missing embarkation data.

    -
    -
    -
    -

    Selecting rows and columns#

    -

    Selecting specific rows and columns from a DataFrame

    -

    The following code uses boolean indexing to first filter rows where the age is greater than 35, and then selects specific columns ‘Name’ and ‘Pclass’ using double square brackets.

    -
    -
    -
    # Filter rows in the 'titanic' DataFrame where the age is greater than 35,
    -# then select only the 'Name' and 'Pclass' columns for these filtered rows.
    -
    -titanic[titanic['Age'] > 35][['Name', 'Pclass']]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NamePclass
    1Cumings, Mrs. John Bradley (Florence Briggs Th...1
    6McCarthy, Mr. Timothy J1
    11Bonnell, Miss. Elizabeth1
    13Andersson, Mr. Anders Johan3
    15Hewlett, Mrs. (Mary D Kingcome)2
    .........
    865Bystrom, Mrs. (Karolina)2
    871Beckwith, Mrs. Richard Leonard (Sallie Monypeny)1
    873Vander Cruyssen, Mr. Victor3
    879Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)1
    885Rice, Mrs. William (Margaret Norton)3
    -

    217 rows × 2 columns

    -
    -
    -
    -
    -

    A note on square bracket indexing []

    -

    Square bracket indexing ([]) is a versatile method for accessing data in Pandas DataFrames, but there are certain tasks that it cannot perform as efficiently or directly compared to loc and iloc. Here are a few limitations of square bracket indexing in comparison to loc and iloc:

    -
      -
    1. Positional Selection: When the selection is purely positional (selecting the first five rows, or columns 2 to 4), iloc is the most straightforward tool for the job.

    2. -
    3. Inclusive Slicing: Square bracket slicing excludes the end point, requiring adjustment of slice endpoints. Conversely, loc allows for inclusive label-based slicing, simplifying the specification of row and column ranges.

    4. -
    5. Dealing with Non-Integer Labels: Square brackets may falter with non-integer labels or custom indices due to potential ambiguities, particularly when index labels might be confused with column names. loc ensures robust label-based selection, irrespective of label data type.

    6. -
    7. Efficiency in Complex Selections: For large datasets or intricate selection tasks, loc and iloc may provide enhanced performance due to their optimizations for label and integer indexing, respectively. They offer a more specialized approach for accessing and manipulating DataFrame data, particularly in complex scenarios.

    8. -
    -

    We have attached a separate notebook that introduces loc and iloc, two properties of pandas DataFrame and Series objects that provide methods for indexing.

    -
    -
    -
    -
    -

    Key points#

    -
      -
    • When selecting subsets of data, square brackets [] are used.

    • -
    • Inside these square brackets, you can use

      -
        -
      • a single column/row label

      • -
      • a list of column/row labels

      • -
      • a slice of labels

      • -
      • a conditional expression

      • -
      -
    • -
    -
    -
    - - - - -
    - - - - - - - - -
    - - - - - - -
    - - - -
    -
    -
    - - - - - -
    -
    - - \ No newline at end of file diff --git a/docs/pandas/xx_pandas_loc_iloc.html b/docs/pandas/xx_pandas_loc_iloc.html deleted file mode 100644 index 8ad17a53..00000000 --- a/docs/pandas/xx_pandas_loc_iloc.html +++ /dev/null @@ -1,1441 +0,0 @@ - - - - - - - - - - - Out: loc and iloc — KUB Datalab - Python - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - -
    -
    -
    -
    -
    - -
    - -
    - - - - - -
    -
    - - - -
    - - - - - - - - - - - - - -
    - -
    - - - -
    - -
    -
    - -
    -
    - -
    - -
    - -
    - - -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    - - - - - - - - -
    - -
    -

    Out: loc and iloc#

    -

    loc and iloc in Pandas are technically properties that return a specialized indexer object. These indexer objects allow for label-based (loc) and integer-based (iloc) indexing. Although they behave similarly to methods in that you use them to perform actions (i.e., selecting or slicing data), they are properties because they return an indexing object rather than directly executing a function.

    -

    When you access loc or iloc on a DataFrame, what you are getting is not a simple value but an object that has its own methods and behaviors, specifically designed to handle indexing operations. This design allows for the concise and powerful data selection syntax that Pandas is known for.

    -
    -
    -

    When to use loc or iloc

    -
      -
    1. Positional Selection: When the selection is purely positional (selecting the first five rows, or columns 2 to 4), iloc is the most straightforward tool for the job.

    2. -
    3. Inclusive Slicing: loc allows for inclusive label-based slicing, simplifying the specification of row and column ranges.

    4. -
    5. Label-based Complex Indexing: For complex indexing scenarios where you need to select rows and columns based on their labels, loc is indispensable. It allows for intuitive and concise syntax that boolean masks cannot provide alone.

    6. -
    7. Efficiency and Readability: In cases where using a boolean mask leads to verbose or inefficient code, loc or iloc might offer a more elegant and performant solution.

    8. -
    -

    In summary, while boolean masks are powerful for filtering rows based on conditions, loc and iloc are essential for a wide range of other data selection tasks, particularly those involving specific column selection, positional indexing, and complex indexing scenarios that go beyond what boolean masks can achieve on their own.

    -
    -
    -

    Import Pandas#

    -
    -
    -
    # This line imports the pandas library and aliases it as 'pd'.
    -
    -import pandas as pd
    -
    -
    -
    -
    -
    -
    -
    -

    Creating a DataFrame from a CSV file#

    -

    The pd.read_csv() function is used to read the data from the file ‘data/titanic.csv’.

    -
    -
    -
    # Load the Titanic dataset from a CSV file into a DataFrame named 'titanic'.
    -
    -titanic = pd.read_csv('data/titanic.csv')
    -
    -
    -
    -
    -
    -
    -
    # Display the DataFrame 'titanic'.
    -
    -titanic
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PassengerIdSurvivedPclassNameSexAgeSibSpParchTicketFareCabinEmbarked
    0103Braund, Mr. Owen Harrismale22.010A/5 211717.2500NaNS
    1211Cumings, Mrs. John Bradley (Florence Briggs Th...female38.010PC 1759971.2833C85C
    2313Heikkinen, Miss. Lainafemale26.000STON/O2. 31012827.9250NaNS
    3411Futrelle, Mrs. Jacques Heath (Lily May Peel)female35.01011380353.1000C123S
    4503Allen, Mr. William Henrymale35.0003734508.0500NaNS
    .......................................
    88688702Montvila, Rev. Juozasmale27.00021153613.0000NaNS
    88788811Graham, Miss. Margaret Edithfemale19.00011205330.0000B42S
    88888903Johnston, Miss. Catherine Helen "Carrie"femaleNaN12W./C. 660723.4500NaNS
    88989011Behr, Mr. Karl Howellmale26.00011136930.0000C148C
    89089103Dooley, Mr. Patrickmale32.0003703767.7500NaNQ
    -

    891 rows × 12 columns

    -
    -
    -
    -
    -
    -
    -

    Selecting rows and columns using loc and iloc#

    -

    How to select specific rows and columns from a DataFrame

    -

    We have seen how we can filter rows in the titanic DataFrame.

    -

    The code below uses boolean indexing to first filter rows where the age is greater than 35, and then selects specific columns ‘Name’ and ‘Pclass’ using double square brackets.

    -
      -
    • Filter rows in the ‘titanic’ DataFrame where the age is greater than 35.

    • -
    • Then select only the ‘Name’ and ‘Pclass’ columns for these filtered rows.

    • -
    -
    -
    -
    titanic[titanic['Age'] > 35][['Name', 'Pclass']]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NamePclass
    1Cumings, Mrs. John Bradley (Florence Briggs Th...1
    6McCarthy, Mr. Timothy J1
    11Bonnell, Miss. Elizabeth1
    13Andersson, Mr. Anders Johan3
    15Hewlett, Mrs. (Mary D Kingcome)2
    .........
    865Bystrom, Mrs. (Karolina)2
    871Beckwith, Mrs. Richard Leonard (Sallie Monypeny)1
    873Vander Cruyssen, Mr. Victor3
    879Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)1
    885Rice, Mrs. William (Margaret Norton)3
    -

    217 rows × 2 columns

    -
    -
    -
    -

    We can perform the same filtering using label-based indexing: loc.

    -

    The following code provides a more explicit way of selecting rows and columns based on labels, where:

    -
      -
    • The first argument specifies the row selection condition (‘Age’ > 35).

    • -
    • The second argument specifies the column selection (‘Name’ and ‘Pclass’).

    • -
    -
    -
    -
    titanic.loc[titanic['Age'] > 35, ['Name', 'Pclass']]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NamePclass
    1Cumings, Mrs. John Bradley (Florence Briggs Th...1
    6McCarthy, Mr. Timothy J1
    11Bonnell, Miss. Elizabeth1
    13Andersson, Mr. Anders Johan3
    15Hewlett, Mrs. (Mary D Kingcome)2
    .........
    865Bystrom, Mrs. (Karolina)2
    871Beckwith, Mrs. Richard Leonard (Sallie Monypeny)1
    873Vander Cruyssen, Mr. Victor3
    879Potter, Mrs. Thomas Jr (Lily Alexenia Wilson)1
    885Rice, Mrs. William (Margaret Norton)3
    -

    217 rows × 2 columns

    -
    -
    -
    -
    -

    When using loc/iloc

    -

    The part before the comma is the rows you want

    -

    The part after the comma is the columns you want to select

    -
    -

    We can also filter using integer position-based location: iloc.

    -

    The code below selects a subset of rows and columns from the ‘titanic’ DataFrame using integer positions.
    -Index positions start from 0 and the end position is exclusive, so the selected rows correspond to the 10th to the 25th row in the DataFrame, and the selected columns correspond to the 3rd to the 6th column.

    -
      -
    • Use iloc to select rows from index position 9 to 25 (exclusive) and columns from index position 2 to 6 (exclusive).

    • -
    -
    -
    -
    titanic.iloc[9:25, 2:6]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PclassNameSexAge
    92Nasser, Mrs. Nicholas (Adele Achem)female14.0
    103Sandstrom, Miss. Marguerite Rutfemale4.0
    111Bonnell, Miss. Elizabethfemale58.0
    123Saundercock, Mr. William Henrymale20.0
    133Andersson, Mr. Anders Johanmale39.0
    143Vestrom, Miss. Hulda Amanda Adolfinafemale14.0
    152Hewlett, Mrs. (Mary D Kingcome)female55.0
    163Rice, Master. Eugenemale2.0
    172Williams, Mr. Charles EugenemaleNaN
    183Vander Planke, Mrs. Julius (Emelia Maria Vande...female31.0
    193Masselmani, Mrs. FatimafemaleNaN
    202Fynney, Mr. Joseph Jmale35.0
    212Beesley, Mr. Lawrencemale34.0
    223McGowan, Miss. Anna "Annie"female15.0
    231Sloper, Mr. William Thompsonmale28.0
    243Palsson, Miss. Torborg Danirafemale8.0
    -
    -
    -
    -

    We can rewrite the statement above using loc instead.

    -

    Note that with loc the slicing is inclusive on both ends!

    -
      -
    • 9:24 specifies the rows from index label 9 to 24 (inclusive).

    • -
    • [‘Pclass’, ‘Name’, ‘Sex’, ‘Age’] explicitly lists the column names corresponding to the integer positions 2 to 5 (inclusive).

    • -
    -
    -
    -
    titanic.loc[9:24, ['Pclass', 'Name', 'Sex', 'Age']]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PclassNameSexAge
    92Nasser, Mrs. Nicholas (Adele Achem)female14.0
    103Sandstrom, Miss. Marguerite Rutfemale4.0
    111Bonnell, Miss. Elizabethfemale58.0
    123Saundercock, Mr. William Henrymale20.0
    133Andersson, Mr. Anders Johanmale39.0
    143Vestrom, Miss. Hulda Amanda Adolfinafemale14.0
    152Hewlett, Mrs. (Mary D Kingcome)female55.0
    163Rice, Master. Eugenemale2.0
    172Williams, Mr. Charles EugenemaleNaN
    183Vander Planke, Mrs. Julius (Emelia Maria Vande...female31.0
    193Masselmani, Mrs. FatimafemaleNaN
    202Fynney, Mr. Joseph Jmale35.0
    212Beesley, Mr. Lawrencemale34.0
    223McGowan, Miss. Anna "Annie"female15.0
    231Sloper, Mr. William Thompsonmale28.0
    243Palsson, Miss. Torborg Danirafemale8.0
    -
    -
    -
    -
    -
    -
    -

    Combining loc and iloc#

    -

    We can use iloc to select:

    -
      -
    • Rows from index position 9 to 25 (exclusive).

    • -
    • Columns from index position 2 to 6 (exclusive).

    • -
    -

    Then further filter these rows using loc based on the condition where:

    -
      -
    • ‘Age’ is greater than 35.

    • -
    -
    -
    -
    titanic.iloc[9:25, 2:6].loc[titanic['Age'] > 35]
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    PclassNameSexAge
    111Bonnell, Miss. Elizabethfemale58.0
    133Andersson, Mr. Anders Johanmale39.0
    152Hewlett, Mrs. (Mary D Kingcome)female55.0
    -
    -
    -
    -
    -
    -
    -

    More information about loc and iloc#

    - -
    -
    - - - - -
    - - - - - - - - -
    - - - - - - -
    - - - -
    -
    -
    - - - - - -
    -
    - - \ No newline at end of file diff --git a/docs/pandas/xx_variables.html b/docs/pandas/xx_variables.html deleted file mode 100644 index c1d4062b..00000000 --- a/docs/pandas/xx_variables.html +++ /dev/null @@ -1,1400 +0,0 @@ - - - - - - - - - - - Out: Variables — KUB Datalab - Python - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - -
    -
    -
    -
    -
    - -
    - -
    - - - - - -
    -
    - - - -
    - - - - - - - - - - - - - -
    - -
    - - - -
    - -
    -
    - -
    -
    - -
    - -
    - -
    - - -
    - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - -
    - -
    -
    - - - - - - - - -
    - -
    -

    Out: Variables#

    -

    Note: You can explore the associated workbook for this chapter in the cloud.

    -

    Variables are one of the fundamental building blocks of Python. A variable is like a tiny container where you store values and data, such as filenames, words, numbers, collections of words and numbers, and more.

    -

    -
    -

    Assigning Variables#

    -

    The variable name will point to a value that you “assign” it. You might think about variable assignment like putting a value “into” the variable, as if the variable is a little box 🎁

    -

    You assign variables with an equals = sign. In Python, a single equals sign = is the “assignment operator.” A double equals sign == is the “real” equals sign.

    -
    -
    -
    new_variable = 100
    -print(new_variable)
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    100
    -
    -
    -
    -
    -
    -
    -
    -
    2 * 2 == 4
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    True
    -
    -
    -
    -
    -
    -
    -
    -
    different_variable = "I'm another variable!"
    -print(different_variable)
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    I'm another variable!
    -
    -
    -
    -
    -
    -

    Let’s look at some of the variables that we used when we counted the most frequent words in Charlotte Perkins Gilman’s “The Yellow Wallpaper.”

    -
    -
    -
    # Import Libraries and Modules
    -
    -import re
    -from collections import Counter
    -
    -# Define Functions
    -
    -def split_into_words(any_chunk_of_text):
    -    lowercase_text = any_chunk_of_text.lower()
    -    split_words = re.split("\W+", lowercase_text)
    -    return split_words
    -
    -# Define Filepaths and Assign Variables
    -
    -filepath_of_text = "../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt"
    -number_of_desired_words = 40
    -
    -stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',
    -'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',
    - 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',
    - 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are',
    - 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does',
    - 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until',
    - 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into',
    - 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down',
    - 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here',
    - 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more',
    - 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',
    - 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']
    -
    -# Read in File
    -
    -full_text = open(filepath_of_text, encoding="utf-8").read()
    -
    -# Manipulate and Analyze File
    -
    -all_the_words = split_into_words(full_text)
    -meaningful_words = [word for word in all_the_words if word not in stopwords]
    -meaningful_words_tally = Counter(meaningful_words)
    -most_frequent_meaningful_words = meaningful_words_tally.most_common(number_of_desired_words)
    -
    -# Output Results
    -
    -most_frequent_meaningful_words
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    <>:10: SyntaxWarning: invalid escape sequence '\W'
    -<>:10: SyntaxWarning: invalid escape sequence '\W'
    -/tmp/ipykernel_2551/1664984018.py:10: SyntaxWarning: invalid escape sequence '\W'
    -  split_words = re.split("\W+", lowercase_text)
    -/tmp/ipykernel_2551/1664984018.py:10: SyntaxWarning: invalid escape sequence '\W'
    -  split_words = re.split("\W+", lowercase_text)
    -
    -
    -
    ---------------------------------------------------------------------------
    -FileNotFoundError                         Traceback (most recent call last)
    -Cell In[4], line 33
    -     18 stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',
    -     19 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',
    -     20  'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',
    -   (...)
    -     28  'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',
    -     29  'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']
    -     31 # Read in File
    ----> 33 full_text = open(filepath_of_text, encoding="utf-8").read()
    -     35 # Manipulate and Analyze File
    -     37 all_the_words = split_into_words(full_text)
    -
    -File /opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/IPython/core/interactiveshell.py:324, in _modified_open(file, *args, **kwargs)
    -    317 if file in {0, 1, 2}:
    -    318     raise ValueError(
    -    319         f"IPython won't let you open fd={file} by default "
    -    320         "as it is likely to crash IPython. If you know what you are doing, "
    -    321         "you can use builtins' open."
    -    322     )
    ---> 324 return io_open(file, *args, **kwargs)
    -
    -FileNotFoundError: [Errno 2] No such file or directory: '../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt'
    -
    -
    -
    -
    -
    -

    We made the variables:

    -
      -
    • filepath_of_text

    • -
    • stopwords

    • -
    • number_of_desired_words

    • -
    • full_text

    • -
    -
    -
    -
    filepath_of_text = "../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt"
    -number_of_desired_words = 40
    -stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',
    - 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',
    - 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',
    - 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are',
    - 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does',
    - 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until',
    - 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into',
    - 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down',
    - 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here',
    - 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more',
    - 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',
    - 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']
    -
    -full_text = open(filepath_of_text, encoding="utf-8").read()
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    ---------------------------------------------------------------------------
    -FileNotFoundError                         Traceback (most recent call last)
    -Cell In[5], line 16
    -      2 number_of_desired_words = 40
    -      3 stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',
    -      4  'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',
    -      5  'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',
    -   (...)
    -     13  'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',
    -     14  'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']
    ----> 16 full_text = open(filepath_of_text, encoding="utf-8").read()
    -
    -File /opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/IPython/core/interactiveshell.py:324, in _modified_open(file, *args, **kwargs)
    -    317 if file in {0, 1, 2}:
    -    318     raise ValueError(
    -    319         f"IPython won't let you open fd={file} by default "
    -    320         "as it is likely to crash IPython. If you know what you are doing, "
    -    321         "you can use builtins' open."
    -    322     )
    ---> 324 return io_open(file, *args, **kwargs)
    -
    -FileNotFoundError: [Errno 2] No such file or directory: '../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt'
    -
    -
    -
    -
    -
    -
    -
    -

    Jupyter Display vs Print()#

    -

    We can check to see what’s “inside” these variables by running a cell with the variable’s name. This is one of the handiest features of a Jupyter notebook. Outside the Jupyter environment, you would need to use the print() function to display the variable.

    -
    -
    -
    filepath_of_text
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    '../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt'
    -
    -
    -
    -
    -
    -
    -
    -
    stopwords
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    ['i',
    - 'me',
    - 'my',
    - 'myself',
    - 'we',
    - 'our',
    - 'ours',
    - 'ourselves',
    - 'you',
    - 'your',
    - 'yours',
    - 'yourself',
    - 'yourselves',
    - 'he',
    - 'him',
    - 'his',
    - 'himself',
    - 'she',
    - 'her',
    - 'hers',
    - 'herself',
    - 'it',
    - 'its',
    - 'itself',
    - 'they',
    - 'them',
    - 'their',
    - 'theirs',
    - 'themselves',
    - 'what',
    - 'which',
    - 'who',
    - 'whom',
    - 'this',
    - 'that',
    - 'these',
    - 'those',
    - 'am',
    - 'is',
    - 'are',
    - 'was',
    - 'were',
    - 'be',
    - 'been',
    - 'being',
    - 'have',
    - 'has',
    - 'had',
    - 'having',
    - 'do',
    - 'does',
    - 'did',
    - 'doing',
    - 'a',
    - 'an',
    - 'the',
    - 'and',
    - 'but',
    - 'if',
    - 'or',
    - 'because',
    - 'as',
    - 'until',
    - 'while',
    - 'of',
    - 'at',
    - 'by',
    - 'for',
    - 'with',
    - 'about',
    - 'against',
    - 'between',
    - 'into',
    - 'through',
    - 'during',
    - 'before',
    - 'after',
    - 'above',
    - 'below',
    - 'to',
    - 'from',
    - 'up',
    - 'down',
    - 'in',
    - 'out',
    - 'on',
    - 'off',
    - 'over',
    - 'under',
    - 'again',
    - 'further',
    - 'then',
    - 'once',
    - 'here',
    - 'there',
    - 'when',
    - 'where',
    - 'why',
    - 'how',
    - 'all',
    - 'any',
    - 'both',
    - 'each',
    - 'few',
    - 'more',
    - 'most',
    - 'other',
    - 'some',
    - 'such',
    - 'no',
    - 'nor',
    - 'not',
    - 'only',
    - 'own',
    - 'same',
    - 'so',
    - 'than',
    - 'too',
    - 'very',
    - 's',
    - 't',
    - 'can',
    - 'will',
    - 'just',
    - 'don',
    - 'should',
    - 'now',
    - 've',
    - 'll',
    - 'amp']
    -
    -
    -
    -
    -
    -
    -
    -
    number_of_desired_words
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    40
    -
    -
    -
    -
    -
    -

    Your turn! Pick another variable from the script above and see what’s inside it below.

    -
    -
    -
    #your_chosen_variable
    -
    -
    -
    -
    -

    You can run the print function inside the Jupyter environment, too. This is sometimes useful because Jupyter will only display the last variable in a cell, while print() can display multiple variables. Additionally, Jupyter will display text with \n characters (which means “new line”), while print() will display the text appropriately formatted with new lines.

    -

    For example, with the print() function, each of the variables are printed, and the “The Yellow Wallpaper” is properly formatted with new lines.

    -
    -
    -
    print(filepath_of_text)
    -print(stopwords)
    -print(number_of_desired_words)
    -print(full_text)
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    ../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt
    -['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers', 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']
    -40
    -
    -
    -
    ---------------------------------------------------------------------------
    -NameError                                 Traceback (most recent call last)
    -Cell In[10], line 4
    -      2 print(stopwords)
    -      3 print(number_of_desired_words)
    -----> 4 print(full_text)
    -
    -NameError: name 'full_text' is not defined
    -
    -
    -
    -
    -
    -
    -
    -

    Variable Names#

    -

    Though we named our variables filepath_of_text, stopwords,number_of_desired_words, and full_text, we could have named them almost anything else.

    -

    Variable names can be as long or as short as you want, and they can include:

    -
      -
    • upper and lower-case letters (A-Z)

    • -
    • digits (0-9)

    • -
    • underscores (_)

    • -
    -

    However, variable names cannot include:

    -
      -
    • ❌ other punctuation (-.!?@)

    • -
    • ❌ spaces ( )

    • -
    • ❌ a reserved Python word

    • -
    -

    Instead of filepath_of_text, we could have simply named the variable filepath.

    -
    -
    -
    filepath = "../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt"
    -filepath
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    '../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt'
    -
    -
    -
    -
    -
    -

    Or we could have gone even simpler and named the filepath f.

    -
    -
    -
    f = "../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt"
    -f
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    '../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt'
    -
    -
    -
    -
    -
    -
    -

    Striving for Good Variable Names#

    -

    As you start to code, you will almost certainly be tempted to use extremely short variables names like f. Your fingers will get tired. Your coffee will wear off. You will see other people using variables like f. You’ll promise yourself that you’ll definitely remember what f means. But you probably won’t.

    -

    So, resist the temptation of bad variable names! Clear and precisely-named variables will:

    -
      -
    • make your code more readable (both to yourself and others)

    • -
    • reinforce your understanding of Python and what’s happening in the code

    • -
    • clarify and strengthen your thinking

    • -
    -

    Example Python Code ❌ With Unclear Variable Names❌

    -

    For the sake of illustration, here’s some of our same word count Python code with poorly named variables. The code works exactly the same as our original code, but it’s a lot harder to read.

    -
    -
    -
    def sp(t):
    -    lt = t.lower()
    -    sw = re.split("\W+", lt)
    -    return sw
    -
    -f = "../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt"
    -ft = open(f, encoding="utf-8").read()
    -
    -words = sp(ft)
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    <>:3: SyntaxWarning: invalid escape sequence '\W'
    -<>:3: SyntaxWarning: invalid escape sequence '\W'
    -/tmp/ipykernel_2551/3249180260.py:3: SyntaxWarning: invalid escape sequence '\W'
    -  sw = re.split("\W+", lt)
    -/tmp/ipykernel_2551/3249180260.py:3: SyntaxWarning: invalid escape sequence '\W'
    -  sw = re.split("\W+", lt)
    -
    -
    -
    ---------------------------------------------------------------------------
    -FileNotFoundError                         Traceback (most recent call last)
    -Cell In[13], line 7
    -      4     return sw
    -      6 f = "../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt"
    -----> 7 ft = open(f, encoding="utf-8").read()
    -      9 words = sp(ft)
    -
    -File /opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/IPython/core/interactiveshell.py:324, in _modified_open(file, *args, **kwargs)
    -    317 if file in {0, 1, 2}:
    -    318     raise ValueError(
    -    319         f"IPython won't let you open fd={file} by default "
    -    320         "as it is likely to crash IPython. If you know what you are doing, "
    -    321         "you can use builtins' open."
    -    322     )
    ---> 324 return io_open(file, *args, **kwargs)
    -
    -FileNotFoundError: [Errno 2] No such file or directory: '../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt'
    -
    -
    -
    -
    -
    -

    Example Python Code ✨ With Clearer Variable Names ✨

    -
    -
    -
    def split_into_words(any_chunk_of_text):
    -    lowercase_text = any_chunk_of_text.lower()
    -    split_words = re.split("\W+", lowercase_text)
    -    return split_words
    -
    -filepath_of_text = "../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt"
    -full_text = open(filepath_of_text, encoding="utf-8").read()
    -
    -all_the_words = split_into_words(full_text)
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    <>:3: SyntaxWarning: invalid escape sequence '\W'
    -<>:3: SyntaxWarning: invalid escape sequence '\W'
    -/tmp/ipykernel_2551/1868761352.py:3: SyntaxWarning: invalid escape sequence '\W'
    -  split_words = re.split("\W+", lowercase_text)
    -/tmp/ipykernel_2551/1868761352.py:3: SyntaxWarning: invalid escape sequence '\W'
    -  split_words = re.split("\W+", lowercase_text)
    -
    -
    -
    ---------------------------------------------------------------------------
    -FileNotFoundError                         Traceback (most recent call last)
    -Cell In[14], line 7
    -      4     return split_words
    -      6 filepath_of_text = "../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt"
    -----> 7 full_text = open(filepath_of_text, encoding="utf-8").read()
    -      9 all_the_words = split_into_words(full_text)
    -
    -File /opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/IPython/core/interactiveshell.py:324, in _modified_open(file, *args, **kwargs)
    -    317 if file in {0, 1, 2}:
    -    318     raise ValueError(
    -    319         f"IPython won't let you open fd={file} by default "
    -    320         "as it is likely to crash IPython. If you know what you are doing, "
    -    321         "you can use builtins' open."
    -    322     )
    ---> 324 return io_open(file, *args, **kwargs)
    -
    -FileNotFoundError: [Errno 2] No such file or directory: '../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt'
    -
    -
    -
    -
    -
    -
    -
    -

    Off-Limits Names#

    -

    The only variable names that are off-limits are names that are reserved by, or built into, the Python programming language itself — such as print, True, and list.

    -

    This is not something to worry too much about. You’ll know very quickly if a name is reserved by Python because it will show up in green and often give you an error message.

    -
    -
    -
    True = "../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt"
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
      Cell In[15], line 1
    -    True = "../texts/literature/The-Yellow-Wallpaper_Charlotte-Perkins-Gilman.txt"
    -    ^
    -SyntaxError: cannot assign to True
    -
    -
    -
    -
    -
    -
    -
    -
    -

    Re-Assigning Variables#

    -

    Variable assignment does not set a variable in stone. You can later re-assign the same variable a different value.

    -

    For instance, I could re-assign filepath_of_text to the filepath for the lyrics of Beyonce’s album Lemonade instead of Perkins-Gilman’s “The Yellow Wallpaper.”

    -
    -
    -
    filepath_of_text = "../texts/music/Beyonce-Lemonade.txt"
    -
    -
    -
    -
    -

    If I change this one variable in our example code, then we get the most frequent words for Lemonade.

    -
    -
    -
    import re
    -from collections import Counter
    -
    -def split_into_words(any_chunk_of_text):
    -    lowercase_text = any_chunk_of_text.lower()
    -    split_words = re.split("\W+", lowercase_text)
    -    return split_words
    -
    -filepath_of_text = "../texts/music/Beyonce-Lemonade.txt"
    -number_of_desired_words = 40
    -
    -stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',
    - 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',
    - 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',
    - 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are',
    - 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does',
    - 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until',
    - 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into',
    - 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down',
    - 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here',
    - 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more',
    - 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',
    - 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']
    -
    -full_text = open(filepath_of_text, encoding="utf-8").read()
    -
    -all_the_words = split_into_words(full_text)
    -meaningful_words = [word for word in all_the_words if word not in stopwords]
    -meaningful_words_tally = Counter(meaningful_words)
    -most_frequent_meaningful_words = meaningful_words_tally.most_common(number_of_desired_words)
    -
    -most_frequent_meaningful_words
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    <>:6: SyntaxWarning: invalid escape sequence '\W'
    -<>:6: SyntaxWarning: invalid escape sequence '\W'
    -/tmp/ipykernel_2551/3981446915.py:6: SyntaxWarning: invalid escape sequence '\W'
    -  split_words = re.split("\W+", lowercase_text)
    -/tmp/ipykernel_2551/3981446915.py:6: SyntaxWarning: invalid escape sequence '\W'
    -  split_words = re.split("\W+", lowercase_text)
    -
    -
    -
    ---------------------------------------------------------------------------
    -FileNotFoundError                         Traceback (most recent call last)
    -Cell In[17], line 25
    -     10 number_of_desired_words = 40
    -     12 stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',
    -     13  'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',
    -     14  'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',
    -   (...)
    -     22  'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',
    -     23  'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']
    ----> 25 full_text = open(filepath_of_text, encoding="utf-8").read()
    -     27 all_the_words = split_into_words(full_text)
    -     28 meaningful_words = [word for word in all_the_words if word not in stopwords]
    -
    -File /opt/hostedtoolcache/Python/3.12.5/x64/lib/python3.12/site-packages/IPython/core/interactiveshell.py:324, in _modified_open(file, *args, **kwargs)
    -    317 if file in {0, 1, 2}:
    -    318     raise ValueError(
    -    319         f"IPython won't let you open fd={file} by default "
    -    320         "as it is likely to crash IPython. If you know what you are doing, "
    -    321         "you can use builtins' open."
    -    322     )
    ---> 324 return io_open(file, *args, **kwargs)
    -
    -FileNotFoundError: [Errno 2] No such file or directory: '../texts/music/Beyonce-Lemonade.txt'
    -
    -
    -
    -
    -
    -
    -

    Your Turn#

    -

    Ok now it’s your turn to change some variables and calculate a new word frequency! First, pick a new text file from the list below:

    -
      -
    • "../texts/music/Carly-Rae-Jepsen-Emotion.txt"

    • -
    • "../texts/music/Mitski-Puberty-2.txt"

    • -
    • "../texts/literature/Dracula_Bram-Stoker.txt"

    • -
    • "../texts/literature/Little-Women_Louisa-May-Alcott.txt"

    • -
    • "../texts/literature/Alice-in-Wonderland_Lewis-Carroll.txt"

    • -
    - -
    -
    - - -Hide code cell content - -
    -
    !ls ../texts/music/
    -
    -
    -
    -
    -
    ls: cannot access '../texts/music/': No such file or directory
    -
    -
    -
    -
    -
    -

    Then assign filepath_of_text to the corresponding filepath below. Be sure to explore what happens when you change the values for number_of_desired_words and stopwords, as well.

    -
    -
    -
    import re
    -from collections import Counter
    -
    -def split_into_words(any_chunk_of_text):
    -    lowercase_text = any_chunk_of_text.lower()
    -    split_words = re.split("\W+", lowercase_text)
    -    return split_words
    -
    -filepath_of_text = #Insert a New Text File Here
    -number_of_desired_words = #Change number of desired words
    -
    -#Explore how the stopwords below affect word frequency by adding or removing stopwords
    -stopwords = ['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', 'your', 'yours',
    - 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', 'her', 'hers',
    - 'herself', 'it', 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves',
    - 'what', 'which', 'who', 'whom', 'this', 'that', 'these', 'those', 'am', 'is', 'are',
    - 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does',
    - 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until',
    - 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into',
    - 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down',
    - 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here',
    - 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more',
    - 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so',
    - 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', 'should', 'now', 've', 'll', 'amp']
    -
    -full_text = open(filepath_of_text, encoding="utf-8").read()
    -
    -all_the_words = split_into_words(full_text)
    -meaningful_words = [word for word in all_the_words if word not in stopwords]
    -meaningful_words_tally = Counter(meaningful_words)
    -most_frequent_meaningful_words = meaningful_words_tally.most_common(number_of_desired_words)
    -
    -most_frequent_meaningful_words
    -
    -
    -
    -
    - - -Hide code cell output - -
    -
    <>:6: SyntaxWarning: invalid escape sequence '\W'
    -<>:6: SyntaxWarning: invalid escape sequence '\W'
    -/tmp/ipykernel_2551/387211622.py:6: SyntaxWarning: invalid escape sequence '\W'
    -  split_words = re.split("\W+", lowercase_text)
    -
    -
    -
      Cell In[19], line 9
    -    filepath_of_text = #Insert a New Text File Here
    -                       ^
    -SyntaxError: invalid syntax
    -
    -
    -
    -
    -
    -
    -
    -
    - - - - -
    - - - - - - - - -
    - - - - - - -
    - - - -
    -
    -
    - - - - - -
    -
    - - \ No newline at end of file diff --git a/genindex.html b/genindex.html index 180ac9c1..16db4d81 100644 --- a/genindex.html +++ b/genindex.html @@ -220,10 +220,7 @@
  • Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/objects.inv b/objects.inv index 56bbc2728507d02edf4946df920181a801de3f1a..eaaeb702f0689ba1e3a92b285ade248bfddb8c46 100644 GIT binary patch delta 935 zcmV;Y16cgZ2%HFzgMU`dbK5Eqzx%J?)LUv>P1~8?oc8(ky-CwdlO{(7iH%HyKm#a_ z|NHVGWGRLy7mu|2`;ggP02_%*z!W$bpqLW_YDs7#1v5+vT*_zANE`Zv$_kyW5q=Bd z{mwKTZH6eiaM4AQ%Y;!9OHOB924s-G2VThr(y9$nk5ul(tbb?(2F)Llwq-o`!I5z$ zq=8b(NBw4#BPG~f4GMc^cIe09=63jmwE5dTUs!#W!hkTrXvi(Bf?lpy>*Z>VDKP|_ zLpv>a8WBXl*>`m7-bX?Oejt-f?}dIt3~6?ld^eyFu99aWV2{9WJi`C{72zR ziYHLoHC)o^1b_DOUw8-iUM}VNPl?q+D*OAI+w@B2_F5wxWDQ4)hA##*! zi8AY?h|dJ-wS7eEDXGYkiV>*@By2#NWw9#Gv81QpJbz6Gx_d)ETM(fKZYl<%g0Y-} z8lHVyJ}4p{L1+U^WW>|pVD$^?f1Z7*x1(IJ+R43zfo zsV5&(dRQuEmyqxo;Q<#MzRNu_@-0Sxy7pi}oRk@dBjC6wH^vSV&~QTh9{`u6OzYzH ztTOJ~$j_Hs>?`ubYI`=#ix>0aMci;GAUlw0Nq-HdYcpCt7fYuNu_N>j{ptj|KA7FK z58R1^^FkpTq;BjB`rY~_Cid$(rThKF-(F56d~|xB@$oPl%hjr%60BWyPUvaaP*cN1 zJ+13_up)UK$?kZ!J68i)pHpbuhyBRAU3BZBQ-dP13@JNKlxJr>lIXaJ66#y&UNPH8 zw|@cPZKsYOhV|%5TWFm%dkO5T7+$8D=SOJMxcy7J9YY&d<>g=DL?<72Me5^I(~nW0 zhd1Jt2WLhk_0xx9eA(q#TH-PnEWpqXCOAnYy+ z&tBJ#E^wzDqj3W5Y^cb-@Zp;KLBAZaSoUQ2MrW+qM?}+T1mk)lLF^*4+<$wzff7AnSlPW#Z)4u>OWCd~7iZpLj?tjE2X#jf8?;&i>ctobWiplir&(dbaBUQHI}1!$@v65EDT$QHqtKvf@$NG~SE+4qjxuXw`cMk{{hm z;X;acXp}9usDIKK?DQ*~f_<{v)nNuQw>WPZ*EdYy*H#p^vJ+bsLwd2h&W_eSgBAS> zydEfh!kj6cAn%->@4-F}BLBp%vcX)+IuShpc!srX(1TqLSU%fLqONxdPY{hUeU8{w#aU=q<`n{Ja+qVyFx!|5WWVU3I?Kp zAzcF{>|I&DHblIEP#Ty>kjKGZ>L-+c?_H|b1D}`L%AJ;T%3M8|YL7JFIiyQJkVc>t z=SXh>J;DyX$cCyY?*W_Ln__mLt}l8UG9`mnxstrqfbO7VLYVGIsMO{wiJBJjxTw~~ zxrY2((|;gtYmKe7?N4;9&o6Yy0}Uy3LM6C8@3#Pcu@m-r z%al3wXas?h5kT4TY)wQ zy&czqJ#lcF$a_82lUbl&wJTy`-mYy_H&5K{<&45v$M+d$_q{P+EV?ei%4X**JPzw~ zs+lOqc^x)Z2wsL@d%T;;RY6kc92(}ZYk50G*VZ}~$U>ARdCN)TqLUg?bQq$9x>9;+ zn189GXAf|)W5tjCezdtsv`UJd0=q2w#hCN<2(2nRzm%OAO0yzOe<3C)IlE0#XCI4x z3IsKm>GY3K-93XSR-lbpyCN_x5=njOOT_U0DV{~OE)Read and Write Tabular Data
  • Subsets
  • Summary Statistics
  • -
  • Basic Plotting in Pandas
  • -
  • Out: loc and iloc
  • -
  • Out: Subsets
  • -
  • Out: Variables
  • +
  • Basic Visualisations in Pandas
  • diff --git a/searchindex.js b/searchindex.js index 1851b073..3303e5c6 100644 --- a/searchindex.js +++ b/searchindex.js @@ -1 +1 @@ -Search.setIndex({"alltitles": {"2024 Open Data Science": [[14, null]], " Download Jupyter Notebook": [[21, "download-jupyter-notebook"]], " Download PDF": [[21, "download-pdf"]], " Open Jupyter Notebook in the Cloud": [[21, "open-jupyter-notebook-in-the-cloud"]], " Exercise 4: The number guessing game": [[11, "exercise-4-the-number-guessing-game"]], " Exercise": [[29, "exercise"], [30, "exercise"]], " Exercise 1: Choosing a name": [[6, "exercise-1-choosing-a-name"]], " Exercise 1: Classifying errors": [[10, "exercise-1-classifying-errors"]], " Exercise 1: Fill in the blanks": [[9, "exercise-1-fill-in-the-blanks"]], " Exercise 1: Spot the difference": [[8, "exercise-1-spot-the-difference"]], " Exercise 1: What does this program print?": [[11, "exercise-1-what-does-this-program-print"]], " Exercise 1: What kind of data type?": [[7, "exercise-1-what-kind-of-data-type"]], " Exercise 2: Automatic type conversion": [[7, "exercise-2-automatic-type-conversion"]], " Exercise 2: Fill in the blanks": [[11, "exercise-2-fill-in-the-blanks"]], " Exercise 2: How large is a slice?": [[9, "exercise-2-how-large-is-a-slice"]], " Exercise 2: Swapping values": [[6, "exercise-2-swapping-values"]], " Exercise 2: Tracing execution": [[10, "exercise-2-tracing-execution"]], " Exercise 2: What happens when?": [[8, "exercise-2-what-happens-when"]], " Exercise 3: Choose a type": [[7, "exercise-3-choose-a-type"]], " Exercise 3: Predicting values": [[6, "exercise-3-predicting-values"]], " Exercise 3: Reversing a string": [[10, "exercise-3-reversing-a-string"]], " Exercise 3: Using the input() function": [[11, "exercise-3-using-the-input-function"]], " Exercise 3: Why not?": [[8, "exercise-3-why-not"]], " Exercise 3: Working with the end": [[9, "exercise-3-working-with-the-end"]], " Exercise 4: Can you slice integers?": [[6, "exercise-4-can-you-slice-integers"]], " Exercise 4: Fill in the blanks": [[10, "exercise-4-fill-in-the-blanks"]], " Exercise 4: Last character of a string": [[8, "exercise-4-last-character-of-a-string"]], " Exercise 4: Stepping through a list": [[9, "exercise-4-stepping-through-a-list"]], " Exercise 4: Strings to numbers": [[7, "exercise-4-strings-to-numbers"]], " Exercise 5: Adding floats and strings": [[7, "exercise-5-adding-floats-and-strings"]], " Exercise 5: Cumulative sum": [[10, "exercise-5-cumulative-sum"]], " Exercise 5: Slicing": [[6, "exercise-5-slicing"], [9, "exercise-5-slicing"]], " Exercise 6: Identifying variable name errors": [[10, "exercise-6-identifying-variable-name-errors"]], " Exercise 6: Number of students": [[7, "exercise-6-number-of-students"]], " Exercise 7: Copying (or not)": [[9, "exercise-7-copying-or-not"]], " Exercise 7: Identifying item errors": [[10, "exercise-7-identifying-item-errors"]], " Exercise 8: From strings to lists and back": [[9, "exercise-8-from-strings-to-lists-and-back"]], "Exercises 6: Sort and sorted": [[9, "exercises-6-sort-and-sorted"]], " Common tips for both macOS and Windows users": [[23, "common-tips-for-both-macos-and-windows-users"]], " JupyterLab - both Mac and Windows": [[25, "jupyterlab-both-mac-and-windows"]], " For macOS users": [[23, "for-macos-users"]], " Method 1: Mac": [[25, "method-1-mac"]], " Attribution": [[1, "attribution"], [27, "attribution"]], " Open Issue on GitHub": [[21, "open-issue-on-github"]], " Open issue on GitHub": [[20, "open-issue-on-github"]], " For Windows users": [[23, "for-windows-users"]], " Method 1: Windows": [[25, "method-1-windows"]], " Expand workspace": [[20, "expand-workspace"]], " Download Jupyter Notebook": [[20, "download-jupyter-notebook"]], " Download PDF": [[20, "download-pdf"]], " Make Full Screen": [[21, "make-full-screen"]], " Make full screen": [[20, "make-full-screen"]], " Click to show output/code": [[20, "click-to-show-output-code"]], "A note on head() and tail()": [[30, null]], "A note on plotting": [[33, null]], "A note on square bracket indexing []": [[35, null]], "A note on the input() function": [[11, null]], "Admonition Boxes": [[0, null]], "Aggregating statistics": [[32, "aggregating-statistics"]], "Aggregating statistics grouped by category": [[32, "aggregating-statistics-grouped-by-category"]], "Alt herunder er tests fra ting fundet andetsteds": [[0, "alt-herunder-er-tests-fra-ting-fundet-andetsteds"]], "An example cell": [[3, "an-example-cell"]], "Appending": [[17, "appending"]], "Appending Series": [[29, "appending-series"]], "Appending to lists": [[9, "appending-to-lists"]], "Are you in doubt about which course to sign up for?": [[26, "are-you-in-doubt-about-which-course-to-sign-up-for"]], "Argument": [[17, "argument"]], "Arithmetic": [[17, "arithmetic"]], "Assigning Variables": [[37, "assigning-variables"]], "Assignment": [[17, "assignment"]], "Attributes": [[18, "attributes"], [29, "attributes"]], "Auto-close brackets": [[24, "auto-close-brackets"]], "Avoid ambiguous operations": [[31, null]], "Bar plot": [[33, "bar-plot"]], "Basic Plotting in Pandas": [[33, null]], "Basic usage": [[33, "basic-usage"]], "Before you attend a course": [[26, "before-you-attend-a-course"]], "Boolean": [[17, "boolean"]], "Booleans": [[5, "booleans"]], "Built-in Functions and Help": [[8, null]], "Built-in data types": [[5, "built-in-data-types"]], "Built-in functions": [[8, "built-in-functions"]], "CSV": [[18, "csv"]], "Calling multiple Series": [[31, "calling-multiple-series"], [35, "calling-multiple-series"]], "Categorical data": [[32, null]], "Character strings are immutable": [[9, "character-strings-are-immutable"]], "Check your version of Python": [[25, "check-your-version-of-python"]], "Citations": [[2, "citations"]], "Click to Show Output/Code": [[21, "click-to-show-output-code"]], "Code blocks and outputs": [[4, "code-blocks-and-outputs"]], "Code in JupyterLab": [[24, null]], "Combining loc and iloc": [[31, "combining-loc-and-iloc"], [36, "combining-loc-and-iloc"]], "Command mode vs. edit mode": [[24, "command-mode-vs-edit-mode"]], "Comment": [[17, "comment"]], "Comments and documentation": [[8, "comments-and-documentation"]], "Common Classes for Admonitions in Jupyter Book": [[0, "common-classes-for-admonitions-in-jupyter-book"]], "Comparisons": [[5, "comparisons"]], "Compound statements": [[11, "compound-statements"]], "Concatenation": [[5, "concatenation"], [17, "concatenation"]], "Conclusion": [[33, "conclusion"]], "Conditionals": [[11, null], [17, "conditionals"]], "Conditionals are often used inside loops": [[11, "conditionals-are-often-used-inside-loops"]], "Conditions are tested once, in order": [[11, "conditions-are-tested-once-in-order"]], "Content": [[12, "content"], [13, "content"], [16, "content"], [22, "content"], [34, "content"]], "Content with notebooks": [[4, null]], "Count number of records by category": [[32, "count-number-of-records-by-category"]], "Create a notebook with MyST Markdown": [[3, "create-a-notebook-with-myst-markdown"]], "Creating a DataFrame from a CSV file": [[30, "creating-a-dataframe-from-a-csv-file"], [31, "creating-a-dataframe-from-a-csv-file"], [32, "creating-a-dataframe-from-a-csv-file"], [35, "creating-a-dataframe-from-a-csv-file"], [36, "creating-a-dataframe-from-a-csv-file"]], "Creating a new column based on existing data": [[29, "creating-a-new-column-based-on-existing-data"]], "Creating and deleting cells": [[24, "creating-and-deleting-cells"]], "Creating our first DataFrame": [[29, "creating-our-first-dataframe"]], "Creating our own Series": [[29, "creating-our-own-series"]], "Curly brackets": [[15, "curly-brackets"]], "Current working directory": [[30, "current-working-directory"]], "Customising plots": [[33, "customising-plots"]], "Data Type": [[17, "data-type"]], "Data Types": [[5, null]], "Data Types and Type Conversion": [[7, null]], "Data types control operations": [[7, "data-types-control-operations"]], "DataFrame": [[18, "dataframe"]], "DataFrames and dictionaries": [[29, "dataframes-and-dictionaries"]], "Dealing with different data types": [[7, "dealing-with-different-data-types"]], "Deleting list items": [[9, "deleting-list-items"]], "Descriptive statistics": [[32, null]], "Dictionary for Absolute Beginners": [[17, null]], "Dictionary for Pandas": [[18, null]], "Did you not click add to PATH?": [[25, null]], "Documentation": [[17, "documentation"]], "Download the Titanic data": [[30, "download-the-titanic-data"]], "Empty lists": [[9, "empty-lists"]], "Error messages": [[8, "error-messages"]], "Every function returns something": [[8, "every-function-returns-something"]], "Example of an Admonition in Jupyter Book": [[0, "example-of-an-admonition-in-jupyter-book"]], "Example: Analysing social media impact": [[11, "example-analysing-social-media-impact"]], "Examples": [[33, "examples"]], "Exercises": [[6, "exercises"], [7, "exercises"], [8, "exercises"], [9, "exercises"], [10, "exercises"], [11, "exercises"]], "Exponents": [[5, "exponents"]], "Filtering on column value": [[30, "filtering-on-column-value"]], "Filtering rows based on conditional expressions": [[31, "filtering-rows-based-on-conditional-expressions"], [35, "filtering-rows-based-on-conditional-expressions"]], "Filtering specific rows with .loc[]": [[31, "filtering-specific-rows-with-loc"]], "Find the length of a string": [[6, "find-the-length-of-a-string"]], "Float": [[17, "float"]], "For Loops": [[10, null]], "For loop structure": [[10, "for-loop-structure"]], "For loop syntax": [[10, "for-loop-syntax"]], "Function": [[17, "function"]], "Functions have default values for some arguments": [[8, "functions-have-default-values-for-some-arguments"]], "Functions only work for certain arguments": [[8, "functions-only-work-for-certain-arguments"]], "GeeksforGeeks": [[19, "geeksforgeeks"]], "Get Help and Find Documentation": [[19, null]], "Get Started with JupyterLab": [[22, null]], "Getting Started with Data Analysis": [[34, null]], "Getting Started with Pandas": [[28, null]], "Getting information on the DataFrame": [[30, "getting-information-on-the-dataframe"]], "Groupby operations": [[32, null]], "Handling missing values with .loc[] and .iloc[]": [[31, "handling-missing-values-with-loc-and-iloc"]], "Her f\u00f8lger f\u00f8rst markdown-kode til admonition boxes, derefter den renderede version": [[0, "her-folger-forst-markdown-kode-til-admonition-boxes-derefter-den-renderede-version"]], "How can you have quotation marks inside a string?": [[5, null]], "How for loops work": [[10, "how-for-loops-work"]], "How to Check Your Python Version on Windows": [[25, "how-to-check-your-python-version-on-windows"]], "How to Check Your Python Version on a Mac": [[25, "how-to-check-your-python-version-on-a-mac"]], "How to Install Python on Windows": [[25, "how-to-install-python-on-windows"]], "How to Install Python on macOS": [[25, "how-to-install-python-on-macos"]], "How to Interact With This Book": [[21, null]], "How to open Windows PowerShell": [[25, null]], "How to open the Terminal": [[25, null]], "IDE (Integrated Development Environment)": [[17, "ide-integrated-development-environment"]], "Immutable": [[17, "immutable"]], "Import Pandas": [[29, "import-pandas"], [30, "import-pandas"], [31, "import-pandas"], [32, "import-pandas"], [35, "import-pandas"], [36, "import-pandas"]], "Importing Pandas": [[28, "importing-pandas"]], "Inclusive vs. Exclusive Slicing": [[31, "inclusive-vs-exclusive-slicing"]], "Indentation": [[17, "indentation"]], "Index": [[5, "index"], [17, "index"], [18, "index"]], "Indexing": [[6, "indexing"]], "Indexing beyond the end": [[9, "indexing-beyond-the-end"]], "Indexing lists": [[9, "indexing-lists"]], "Indexing, slicing, and length": [[6, "indexing-slicing-and-length"]], "Infinite loops": [[11, "infinite-loops"]], "Install & Run Python": [[25, null]], "Install Python on Mac": [[25, "install-python-on-mac"]], "Install Python on Windows": [[25, "install-python-on-windows"]], "Installing (or upgrading) Pandas from PyPI": [[28, "installing-or-upgrading-pandas-from-pypi"]], "Integer": [[17, "integer"]], "Integers & floats": [[5, "integers-floats"]], "Integers and floats can be mixed freely in operations": [[7, "integers-and-floats-can-be-mixed-freely-in-operations"]], "Interact With This Book": [[20, null]], "Introducing .loc[] and .iloc[]": [[31, "introducing-loc-and-iloc"]], "Jupyter Display vs Print()": [[37, "jupyter-display-vs-print"]], "Key parameters": [[33, "key-parameters"]], "Key points": [[5, "key-points"], [6, "key-points"], [7, "key-points"], [8, "key-points"], [9, "key-points"], [10, "key-points"], [11, "key-points"], [29, "key-points"], [30, "key-points"], [31, "key-points"], [32, "key-points"], [35, "key-points"]], "Keyboard shortcut for restarting kernel": [[24, "keyboard-shortcut-for-restarting-kernel"]], "Learn All the New Words": [[16, null]], "Learn more": [[2, "learn-more"]], "Learning Objectives": [[5, null], [6, null], [7, null], [8, null], [9, null], [10, null], [11, null]], "Library": [[17, "library"]], "Lists": [[9, null]], "Lists are mutable": [[9, "lists-are-mutable"]], "Lists may contain items of different data types": [[9, "lists-may-contain-items-of-different-data-types"]], "Looking for the simplest way to get started?": [[25, null]], "Loop": [[17, "loop"]], "Managing kernels": [[24, "managing-kernels"]], "Markdown + notebooks": [[4, "markdown-notebooks"]], "Markdown Files": [[2, null]], "Mathematical operations": [[5, "mathematical-operations"]], "Memory usage": [[30, null]], "Metacharacters": [[15, "metacharacters"]], "Method 1: Installing Python and JupyterLab": [[25, "method-1-installing-python-and-jupyterlab"]], "Method 2: Google Colab": [[25, "method-2-google-colab"]], "Method 3: ERDA": [[25, "method-3-erda"]], "ModuleNotFoundError": [[28, null]], "Modulus": [[5, "modulus"]], "More information about loc and iloc": [[36, "more-information-about-loc-and-iloc"]], "More metacharacters, as well as pipes, lists and question marks": [[15, "more-metacharacters-as-well-as-pipes-lists-and-question-marks"]], "Moving cells": [[24, "moving-cells"]], "Multiple statements in a for loop": [[10, "multiple-statements-in-a-for-loop"]], "Multiplication": [[5, "multiplication"]], "Mutable": [[17, "mutable"]], "My title": [[0, null], [0, null], [0, null]], "MyST markdown": [[4, "myst-markdown"]], "NaN": [[18, "nan"]], "Naming Conventions": [[6, null]], "Naming loop variables": [[10, "naming-loop-variables"]], "Notebooks with MyST Markdown": [[3, null]], "Notice": [[11, null]], "Notice the difference between overwriting and changing values": [[9, null]], "Off-Limits Names": [[37, "off-limits-names"]], "Off-limits names": [[6, "off-limits-names"]], "Official Pandas documentation": [[19, "official-pandas-documentation"]], "Official Python Documentation": [[19, "official-python-documentation"]], "Open and Navigate JupyterLab": [[23, null]], "Operator": [[17, "operator"]], "Our courses": [[27, "our-courses"]], "Out: Subsets": [[35, null]], "Out: Variables": [[37, null]], "Out: loc and iloc": [[36, null]], "Pandas DataFrame": [[29, null]], "Pandas data table representation": [[29, "pandas-data-table-representation"]], "Part 1": [[12, null]], "Part 2": [[13, null]], "Pie chart": [[33, "pie-chart"]], "Python is case-sensitive": [[6, "python-is-case-sensitive"]], "Quickly add YAML metadata for MyST Notebooks": [[3, "quickly-add-yaml-metadata-for-myst-notebooks"]], "Re-Assigning Variables": [[37, "re-assigning-variables"]], "Read and Write Tabular Data": [[30, null]], "Read files": [[15, "read-files"]], "Reading and writing Excel files": [[30, "reading-and-writing-excel-files"]], "Recap on Data Types": [[7, null]], "Recap on division types": [[7, null]], "RegEx and Frankenstein": [[15, null]], "Renaming columns": [[29, "renaming-columns"]], "Replacing list items": [[9, "replacing-list-items"]], "Restart kernel options": [[24, "restart-kernel-options"]], "Running code cells": [[24, "running-code-cells"]], "Runtime errors": [[8, "runtime-errors"]], "Sample Roles and Directives": [[2, "sample-roles-and-directives"]], "Scatter plot": [[33, "scatter-plot"]], "Selecting rows and columns using loc and iloc": [[36, "selecting-rows-and-columns-using-loc-and-iloc"]], "Selecting rows and columns": [[31, "selecting-rows-and-columns"], [35, "selecting-rows-and-columns"]], "Selecting specific columns": [[31, "selecting-specific-columns"], [35, "selecting-specific-columns"]], "Series": [[18, "series"], [29, "series"]], "Sign Up for a Course": [[26, null]], "Single equals sign = and a double equals sign ==": [[5, null]], "Slice": [[5, "slice"], [17, "slice"]], "Slicing lists": [[9, "slicing-lists"]], "Solution": [[6, null], [6, null], [6, null], [6, null], [7, null], [7, null], [7, null], [7, null], [7, null], [7, null], [8, null], [8, null], [8, null], [9, null], [9, null], [9, null], [9, null], [9, null], [9, null], [9, null], [9, null], [10, null], [10, null], [10, null], [10, null], [10, null], [10, null], [10, null], [10, null], [10, null], [10, null], [11, null], [11, null], [11, null], [29, null], [30, null]], "Square brackets [A-Z]": [[15, "square-brackets-a-z"]], "Statement": [[17, "statement"]], "Step 1: Download the Official Installer": [[25, "step-1-download-the-official-installer"]], "Step 1: Open JupyterLab": [[23, "step-1-open-jupyterlab"], [23, "id1"]], "Step 2: Navigate the File/Directory System": [[23, "step-2-navigate-the-file-directory-system"], [23, "id2"]], "Step 2: Run the Installer": [[25, "step-2-run-the-installer"]], "String": [[17, "string"]], "String methods": [[5, "string-methods"]], "Strings": [[5, "strings"]], "Strings have a length (but numbers do not)": [[7, "strings-have-a-length-but-numbers-do-not"]], "Striving for Good Variable Names": [[37, "striving-for-good-variable-names"]], "Subset": [[18, "subset"]], "Subsets": [[31, null]], "Summary": [[31, "summary"]], "Summary Statistics": [[32, null]], "Syntax": [[17, "syntax"]], "Syntax errors": [[8, "syntax-errors"]], "Table of Boolean Operations": [[5, null]], "Table of Comparison Operations": [[5, null]], "Table of List Methods": [[9, null]], "Table of Mathematical Operations": [[5, null]], "The .plot() syntax": [[33, "the-plot-syntax"]], "The help() function": [[8, "the-help-function"]], "The type() function": [[5, "the-type-function"]], "The while syntax": [[11, "the-while-syntax"]], "This is a title": [[0, null], [0, null]], "To choose from a wider list of files\u2026": [[37, null]], "Todo": [[0, "id1"]], "Transpose": [[18, "transpose"]], "Transposing a DataFrame": [[29, "transposing-a-dataframe"]], "Use a slice to get a substring": [[6, "use-a-slice-to-get-a-substring"]], "Use else to execute a block of code when an if condition is not true": [[11, "use-else-to-execute-a-block-of-code-when-an-if-condition-is-not-true"]], "Use meaningful variable names": [[6, "use-meaningful-variable-names"]], "Use print() to display values": [[6, "use-print-to-display-values"]], "Use variables to store values": [[6, "use-variables-to-store-values"]], "Using .iloc[] for positional indexing": [[31, "using-iloc-for-positional-indexing"]], "Using .loc[] and .iloc[] for complex conditions": [[31, "using-loc-and-iloc-for-complex-conditions"]], "Using accumulator variables": [[10, "using-accumulator-variables"]], "Using range with the for loop": [[10, "using-range-with-the-for-loop"]], "Using the + and * operators on strings": [[7, "using-the-and-operators-on-strings"]], "Variable": [[17, "variable"]], "Variable Names": [[37, "variable-names"]], "Variable names": [[6, "variable-names"]], "Variables Persist Between Cells": [[6, null]], "Variables and Assignment": [[6, null]], "Variables in calculations": [[6, "variables-in-calculations"]], "Variables must be created before they are used": [[6, "variables-must-be-created-before-they-are-used"]], "Variables only change value when something is assigned to them": [[7, "variables-only-change-value-when-something-is-assigned-to-them"]], "W3Schools": [[19, "w3schools"]], "Was pip not installed correctly?": [[25, null]], "Welcome": [[1, null], [27, null]], "What are lists?": [[9, "what-are-lists"]], "What exactly are loc and iloc?": [[31, null]], "What is MyST?": [[2, "what-is-myst"]], "What is the problem with the script above?": [[11, null]], "When to use loc or iloc": [[36, null]], "When using loc/iloc": [[31, null], [36, null]], "While loops": [[11, "while-loops"]], "Why pandas as pd?": [[29, null]], "Would you rather use another method?": [[25, null]], "Your Turn": [[37, "your-turn"]], "dtypes": [[30, "dtypes"]], "elif specify additional tests": [[11, "elif-specify-additional-tests"]], "head()": [[30, "head"]], "if statements control whether or not a block of code is executed": [[11, "if-statements-control-whether-or-not-a-block-of-code-is-executed"]], "info()": [[30, "info"]], "max(), min(), and round()": [[8, "max-min-and-round"]], "notna() and isna()": [[30, "notna-and-isna"]], "pd": [[18, "pd"]], "shape": [[30, "shape"]], "tail()": [[30, "tail"]], "w+ along with \\b": [[15, "w-along-with-b"]]}, "docnames": ["_to_be_deleted_later/admonition_boxes", "_to_be_deleted_later/intro_old", "_to_be_deleted_later/markdown", "_to_be_deleted_later/markdown-notebooks", "_to_be_deleted_later/notebooks", "docs/101/01_data_types", "docs/101/02_variables_and_assignment", "docs/101/03_type_conversion", "docs/101/04_built-in_functions", "docs/101/05_lists", "docs/101/06_for_loops", "docs/101/07_conditionals", "docs/101/part1", "docs/101/part2", "docs/_test/2024_ods", "docs/_test/regex_and_frankenstein", "docs/howto/dictionaries", "docs/howto/dictionary_101", "docs/howto/dictionary_pandas", "docs/howto/help_and_documentation", "docs/howto/interact", "docs/howto/interact_original", "docs/howto/jupyterlab", "docs/howto/jupyterlab_1", "docs/howto/jupyterlab_2", "docs/howto/setup", "docs/howto/sign_up", "docs/intro", "docs/pandas/00_pandas_start", "docs/pandas/01_pandas_dataframe", "docs/pandas/02_pandas_tabular_data", "docs/pandas/03_pandas_subsets", "docs/pandas/04_pandas_summary_statistics", "docs/pandas/05_pandas_plot", "docs/pandas/getting_started", "docs/pandas/xx_03_pandas_subsets", "docs/pandas/xx_pandas_loc_iloc", "docs/pandas/xx_variables"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinxcontrib.bibtex": 9}, "filenames": ["_to_be_deleted_later/admonition_boxes.ipynb", "_to_be_deleted_later/intro_old.md", "_to_be_deleted_later/markdown.md", "_to_be_deleted_later/markdown-notebooks.md", "_to_be_deleted_later/notebooks.ipynb", "docs/101/01_data_types.ipynb", "docs/101/02_variables_and_assignment.ipynb", "docs/101/03_type_conversion.ipynb", "docs/101/04_built-in_functions.ipynb", "docs/101/05_lists.ipynb", "docs/101/06_for_loops.ipynb", "docs/101/07_conditionals.ipynb", "docs/101/part1.ipynb", "docs/101/part2.ipynb", "docs/_test/2024_ods.ipynb", "docs/_test/regex_and_frankenstein.ipynb", "docs/howto/dictionaries.ipynb", "docs/howto/dictionary_101.ipynb", "docs/howto/dictionary_pandas.ipynb", "docs/howto/help_and_documentation.ipynb", "docs/howto/interact.ipynb", "docs/howto/interact_original.ipynb", "docs/howto/jupyterlab.ipynb", "docs/howto/jupyterlab_1.ipynb", "docs/howto/jupyterlab_2.ipynb", "docs/howto/setup.ipynb", "docs/howto/sign_up.ipynb", "docs/intro.ipynb", "docs/pandas/00_pandas_start.ipynb", "docs/pandas/01_pandas_dataframe.ipynb", "docs/pandas/02_pandas_tabular_data.ipynb", "docs/pandas/03_pandas_subsets.ipynb", "docs/pandas/04_pandas_summary_statistics.ipynb", "docs/pandas/05_pandas_plot.ipynb", "docs/pandas/getting_started.ipynb", "docs/pandas/xx_03_pandas_subsets.ipynb", "docs/pandas/xx_pandas_loc_iloc.ipynb", "docs/pandas/xx_variables.ipynb"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 18, 23, 25, 27, 28, 29, 30, 31, 32, 35, 36, 37], "0": [4, 5, 6, 7, 8, 9, 10, 11, 15, 17, 24, 29, 30, 31, 32, 35, 36, 37], "00": 30, "0000": [30, 31, 32, 35, 36], "000000": 32, "028662": 32, "0500": [30, 31, 32, 35, 36], "07": 11, "0750": [31, 35], "0x7f9e08ac2d50": 4, "1": [4, 5, 13, 15, 17, 18, 26, 29, 30, 31, 32, 35, 36, 37], "10": [4, 5, 7, 8, 10, 11, 23, 30, 31, 35, 36, 37], "100": [4, 8, 11, 15, 37], "1000": [30, 31, 32, 35, 36], "106": 32, "10th": 36, "11": [7, 8, 9, 23, 30, 31, 35, 36], "111369": [30, 31, 32, 35, 36], "112053": [30, 31, 32, 35, 36], "113": 31, "113572": 31, "113783": [31, 35], "113803": [30, 31, 32, 35, 36], "11751": [31, 35], "11767": [31, 35], "118810": 32, "12": [7, 8, 9, 10, 11, 17, 25, 30, 31, 32, 35, 36, 37], "120": [10, 11, 23], "123": 6, "125": 10, "1250": [31, 35], "125000": 32, "125798": 32, "13": [5, 10, 30, 31, 32, 35, 36, 37], "14": [7, 31, 32, 35, 36, 37], "14159": 7, "1415926": 5, "147314": 32, "14879": 30, "15": [11, 31, 35, 36, 37], "150": 11, "155": 10, "1583": [31, 35], "159236": 32, "16": [5, 9, 31, 32, 35, 36, 37], "1664984018": 37, "17": [5, 9, 36, 37], "17463": [31, 35], "17599": [30, 31, 32, 35, 36], "1764": [20, 21], "177": 30, "18": [9, 17, 36, 37], "184": 32, "1868761352": 37, "188908": 32, "19": [30, 31, 32, 35, 36, 37], "19680801": 4, "1984": 9, "1st": 32, "2": [3, 5, 17, 18, 26, 29, 30, 31, 32, 35, 36, 37], "20": [9, 11, 30, 32, 36, 37], "200": 10, "2014": 2, "204": [30, 31, 35], "204208": 32, "21": [31, 32, 35, 36], "211536": [30, 31, 32, 35, 36], "21171": [30, 31, 32, 35, 36], "216": 32, "217": [31, 35, 36], "22": [11, 29, 30, 31, 32, 35, 36, 37], "226127": 32, "23": [30, 31, 32, 35, 36, 37], "235702": 32, "236852": [31, 35], "24": 36, "248706": [31, 35], "25": [7, 11, 17, 29, 31, 32, 35, 36, 37], "2500": [29, 30, 31, 32, 35, 36], "25th": 36, "26": [30, 31, 32, 35, 36], "27": [30, 31, 32, 35, 36, 37], "2750": [31, 35], "28": [32, 36, 37], "2833": [29, 30, 31, 32, 35, 36], "29": [31, 32, 35, 37], "2nd": 32, "3": [5, 17, 18, 29, 30, 31, 32, 35, 36, 37], "30": [11, 15, 30, 31, 32, 35, 36], "300": 11, "31": [31, 32, 35, 36, 37], "3101282": [30, 31, 32, 35, 36], "317": 37, "318": 37, "319": 37, "32": [30, 31, 32, 35, 36], "320": 37, "321": 37, "322": 37, "324": 37, "3249180260": 37, "329200": 32, "33": [31, 37], "330877": [31, 35], "34": 36, "345765": [31, 35], "347082": [31, 35], "349909": [31, 35], "35": [29, 30, 31, 32, 35, 36, 37], "37": 37, "370376": [30, 31, 32, 35, 36], "373450": [30, 31, 32, 35, 36], "38": [29, 30, 31, 32, 35, 36], "382652": [31, 35], "387211622": 37, "389108": 32, "389948": 32, "39": [31, 35, 36], "392076": [31, 35], "3981446915": 37, "3rd": [32, 36], "4": [3, 4, 5, 17, 18, 30, 31, 32, 35, 36, 37], "40": [31, 37], "42": [5, 6, 7, 20, 21, 31, 35], "420000": 32, "429809": 32, "431": 32, "44": 32, "45": [6, 10, 30], "4500": [30, 31, 32, 35, 36], "454": 32, "4542": 32, "454200": 32, "4583": [31, 35], "47": [31, 35], "479818": 32, "49": 32, "491": 32, "5": [4, 11, 17, 25, 30, 31, 32, 35, 36, 37], "50": [11, 32], "500": 11, "51": [31, 35], "512": [7, 32], "52": [7, 8, 31, 35], "523893": 32, "526497": 32, "53": [8, 30, 31, 32, 35, 36], "54": [11, 31, 35], "55": [10, 31, 35, 36], "5500": [31, 35], "5542": [31, 35], "56": [31, 35], "58": [29, 31, 35, 36], "6": [11, 17, 30, 31, 35, 36, 37], "60": [6, 30], "600": 7, "61": [29, 31], "62": 31, "64": 25, "649682": 32, "6607": [30, 31, 32, 35, 36], "661633": 32, "665": 30, "666": [5, 30], "6666666666666667": 7, "67": 32, "675": [31, 35], "687": 30, "693429": 32, "694268": 32, "69911764705882": 32, "699118": 32, "6th": 36, "7": [5, 7, 8, 11, 29, 30, 31, 32, 35, 36, 37], "70": 11, "71": [11, 29, 30, 31, 32, 35, 36], "712": 8, "714": [30, 31, 32, 35], "72": 5, "726645": 32, "73": 30, "741782": 32, "742038": 32, "75": [10, 30, 32], "7500": [30, 31, 32, 35, 36], "777": 5, "8": [5, 11, 15, 17, 29, 30, 31, 32, 35, 36, 37], "80": [10, 11, 31, 32], "800": 11, "829": 31, "83": [30, 31, 35], "830": 31, "84": 15, "85": 11, "854": 31, "86": 11, "860": 31, "8625": [31, 35], "865": [31, 35, 36], "866": [31, 35], "871": [31, 35, 36], "872": [31, 35], "873": [31, 35, 36], "874": [31, 35], "879": [31, 35, 36], "880": [31, 35], "884": [31, 35], "885": [31, 35, 36], "886": [30, 31, 32, 35, 36], "887": [30, 31, 32, 35, 36], "888": [30, 31, 32, 35, 36], "889": [30, 31, 32, 35, 36], "890": [30, 31, 32, 35, 36], "891": [30, 31, 32, 35, 36], "9": [7, 8, 9, 10, 11, 30, 31, 35, 36, 37], "90": 11, "910400": 32, "915709": 32, "9250": [29, 30, 31, 32, 35, 36], "970121": 32, "99": 9, "99th": 9, "A": [0, 5, 6, 7, 8, 9, 10, 17, 18, 24, 25, 29, 31, 32, 36, 37], "AND": [31, 35], "And": [6, 9, 15, 29], "As": [4, 6, 25, 31, 32, 35, 37], "Be": [10, 25, 37], "But": [4, 6, 7, 9, 10, 11, 15, 25, 37], "By": [8, 13, 23, 24, 30, 33], "For": [0, 2, 4, 5, 6, 7, 9, 13, 15, 17, 22, 25, 29, 30, 31, 32, 35, 36, 37], "If": [3, 5, 6, 7, 8, 9, 10, 11, 15, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33, 37], "In": [2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 18, 22, 23, 24, 25, 26, 28, 29, 30, 32, 36, 37], "It": [2, 5, 6, 7, 9, 10, 11, 15, 17, 18, 21, 25, 29, 30, 31, 32, 33, 35, 36], "Its": 15, "No": [25, 37], "Not": [10, 18], "OF": 15, "OR": [15, 31, 35], "On": 23, "One": 33, "Or": [5, 10, 11, 25, 28, 37], "THE": 15, "That": [1, 3, 10, 11, 27], "The": [0, 1, 2, 3, 6, 7, 9, 10, 15, 17, 19, 20, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 35, 36, 37], "Then": [25, 31, 36, 37], "There": [4, 5, 6, 7, 9, 11, 15, 19, 25, 26, 28], "These": [0, 6, 8, 15, 19, 24, 28, 29, 31, 32, 36], "To": [6, 7, 8, 9, 11, 13, 15, 16, 20, 21, 23, 24, 25, 30, 31, 32, 35], "With": [3, 24, 31, 37], "_": [15, 37], "____": [9, 10, 11], "_alistairs_real_ag": 6, "_modified_open": 37, "aaah": 8, "ab": [5, 6], "abbrevi": 7, "abil": 31, "about": [0, 2, 3, 4, 5, 6, 8, 9, 11, 15, 17, 20, 22, 25, 27, 28, 29, 30, 31, 32, 33, 37], "abov": [5, 6, 7, 9, 10, 15, 24, 25, 35, 36, 37], "absenc": 31, "absolut": [1, 5, 6, 8, 12, 13, 16, 26, 27], "accept": 2, "access": [5, 9, 17, 18, 23, 25, 28, 29, 31, 35, 36, 37], "accident": 11, "accordingli": 7, "account": 25, "acess": 5, "achem": 36, "achiev": 36, "acknowledg": [1, 27], "acronym": 10, "across": [32, 33], "action": [10, 11, 17, 24, 31, 36], "activ": 24, "actual": [6, 7, 10, 15, 17, 29, 30, 32], "ad": [5, 6, 10, 15, 17, 25, 28, 29, 37], "add": [5, 6, 7, 8, 9, 10, 24, 29, 31], "add_": 4, "addit": [7, 8, 15, 17, 23, 28, 31, 33], "addition": [6, 23, 24, 33, 37], "adel": 36, "adieu": 15, "adjust": [11, 23, 33, 35], "adolfina": 36, "adopt": [18, 28, 29], "adress": 6, "adult": 17, "advanc": [13, 15, 17, 31], "advantag": 13, "advic": 0, "advis": [10, 25], "aeg": 8, "aesthet": 33, "af": 15, "affect": [6, 9, 24, 37], "affix": 15, "africa": 15, "afsl\u00f8r": 15, "after": [6, 7, 8, 9, 10, 15, 17, 18, 25, 27, 28, 29, 31, 36, 37], "afterward": [12, 25], "ag": [6, 8, 17, 25, 29, 30, 31, 32, 33, 35, 36], "again": [10, 11, 12, 28, 37], "against": 37, "age_in_3_year": 29, "agg": 32, "agit": 15, "ago": [6, 23], "agre": 25, "agreement": 25, "ah": 15, "ahead": 25, "ahlin": 31, "ahm": [6, 7], "air": 15, "aka": [7, 29], "album": 37, "alcott": 37, "alexenia": [31, 35, 36], "algorithm": 27, "alias": [18, 28, 29, 30, 31, 32, 33, 35, 36], "alic": [17, 37], "align": [4, 29], "all": [1, 2, 3, 6, 7, 9, 10, 11, 12, 15, 18, 19, 24, 25, 26, 27, 28, 29, 30, 31, 35, 37], "all_the_word": 37, "allen": [29, 30, 31, 32, 35, 36], "allevi": 30, "allow": [2, 5, 7, 9, 11, 17, 21, 23, 24, 25, 29, 30, 31, 32, 33, 35, 36], "almost": [6, 10, 37], "alon": 36, "along": [12, 25, 28, 29, 30], "alphabet": [8, 15], "alphanumer": 6, "alreadi": [8, 10, 17, 25, 26, 28], "also": [2, 3, 4, 5, 6, 7, 8, 15, 20, 21, 22, 23, 25, 28, 29, 31, 32, 33, 35, 36], "alt": 24, "alter": [9, 17], "altern": [11, 23, 25], "although": [5, 15, 31, 36], "alwai": [5, 8, 10, 11, 19, 23, 25, 31], "am": [5, 8, 15, 17, 37], "amanda": 36, "ambigu": [7, 35], "ameli": 31, "amercian": 11, "america": 15, "among": 33, "amount": 29, "amp": 37, "an": [1, 2, 5, 6, 7, 8, 9, 10, 13, 15, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 35, 36, 37], "analys": 32, "analysi": [24, 26, 30, 32, 33], "analyt": [1, 27], "analyz": [15, 37], "ander": [31, 35, 36], "andersson": [31, 35, 36], "andr": 15, "ani": [3, 5, 6, 8, 9, 10, 11, 15, 17, 18, 20, 21, 23, 24, 25, 28, 37], "anim": 10, "anna": 36, "anni": 36, "anoth": [5, 7, 11, 15, 37], "answer": 7, "ant": 27, "any_chunk_of_text": 37, "anyon": [1, 27], "anyth": [5, 8, 9, 10, 15, 37], "anywher": 23, "appear": [7, 15, 33], "append": [5, 10, 11, 15], "appli": [18, 29, 31, 32, 35], "applic": [17, 23, 25], "approach": [15, 30, 32, 35], "appropri": [6, 11, 32, 37], "ar": [1, 2, 3, 5, 7, 8, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 32, 35, 36, 37], "archangel": 15, "archiv": 25, "area": 33, "arg": 37, "argument": [0, 6, 29, 30, 32, 33, 36], "aris": 31, "arithmet": 7, "around": [6, 8, 25, 27], "arrai": [4, 10, 18, 29], "arrow": [23, 24], "asdf": 10, "ask": [7, 11, 25, 29], "asp": 15, "aspect": 33, "asplund": 31, "assign": [5, 8, 9, 10, 11, 12, 29], "associ": [11, 18, 37], "assum": 29, "astyp": 32, "attach": 35, "attempt": [9, 11], "attend": [1, 7, 12, 27], "attent": 0, "attribut": [30, 31, 35], "auditori": 2, "august": 15, "augusta": 31, "australia": 2, "auto": 22, "automat": [6, 10, 11, 23, 24, 28], "autosav": 23, "avail": [0, 25, 30, 32, 33, 37], "averag": [7, 32], "avert": 15, "avoid": [6, 10], "awar": 25, "ax": [4, 33], "axi": [29, 30, 33], "b": [5, 6, 8, 10, 11, 18, 24], "b28": 31, "b42": [30, 31, 32, 35, 36], "ba": 6, "back": [6, 11, 23, 25], "backslash": 5, "backward": 9, "bad": [6, 31, 37], "bar": 11, "barh": 33, "base": [1, 3, 5, 7, 11, 17, 18, 27, 33, 36], "basic": [11, 12, 17, 26, 31, 34], "beast": 15, "beaufort": 15, "beauti": 15, "becaus": [5, 6, 7, 8, 10, 15, 31, 32, 36, 37], "beckwith": [31, 35, 36], "becom": [6, 9, 11, 15, 29, 31], "been": [1, 6, 8, 9, 10, 11, 15, 17, 25, 27, 37], "beeslei": 36, "befor": [1, 5, 8, 9, 11, 12, 15, 20, 25, 27, 28, 31, 36, 37], "begin": [4, 5, 6, 9, 10, 17, 26], "beginn": [1, 8, 12, 13, 16, 26, 27], "behav": [31, 36], "behavior": [9, 31, 36], "behind": 15, "behr": [30, 31, 32, 35, 36], "being": [2, 6, 10, 15, 30, 37], "below": [1, 5, 6, 8, 9, 10, 11, 12, 15, 20, 21, 24, 25, 29, 30, 35, 36, 37], "beneath": [20, 21], "benefit": 31, "best": 6, "betingels": 15, "better": [6, 11, 31], "between": [5, 7, 8, 11, 15, 23, 33, 36, 37], "beyonc": 37, "beyond": [17, 36], "bib": 2, "bibliographi": 2, "bibtex": 2, "binder": 21, "birth": 15, "bit": [5, 11, 25, 26], "blah": 8, "blank": 8, "blind": 9, "blink": 24, "block": [3, 6, 10, 12, 17, 37], "blu": 6, "blue": [6, 10, 24], "blur": 8, "boarder": 15, "bodi": [10, 11], "boi": 15, "boks": 0, "bold": 15, "bonnel": [29, 31, 35, 36], "book": [1, 2, 3, 4, 7, 9, 10, 15], "book_titl": 9, "bool": 35, "boolean": [11, 30, 35, 36], "borrow": [1, 27], "bortfiltrer": 15, "both": [2, 5, 6, 8, 9, 15, 17, 18, 29, 31, 32, 33, 36, 37], "bottom": [10, 24, 25], "boundari": 15, "box": [2, 6, 23, 25, 33, 37], "boxplot": 33, "brace": 24, "bracket": [5, 6, 9, 22, 31, 32, 36], "bradlei": [30, 31, 32, 35, 36], "branch": 11, "braund": [29, 30, 31, 32, 35, 36], "breadcrumb": 23, "brew": 11, "brian": 2, "briefli": 9, "brigg": [30, 31, 32, 35, 36], "brilliant": 15, "brisban": 2, "broader": 25, "brother": 15, "brought": 15, "brows": 25, "browser": [23, 25], "bug": 28, "build": [2, 6, 10, 11, 12, 13, 17, 37], "built": [3, 6, 7, 10, 12, 17, 25, 32, 37], "builtin": [8, 37], "button": [6, 11, 25], "bystrom": [31, 35, 36], "c": [8, 10, 11, 23, 30, 31, 32, 35, 36], "c103": [31, 35], "c123": [30, 31, 32, 35, 36], "c148": [30, 31, 32, 35, 36], "c50": [31, 35], "c85": [30, 31, 32, 35, 36], "cabin": [30, 31, 32, 35, 36], "cach": 15, "calcul": [5, 7, 9, 10, 29, 30, 32, 37], "calendar": 26, "call": [2, 6, 7, 8, 9, 10, 11, 17, 18, 25, 28, 29, 30, 33, 37], "came": 7, "campaign": 11, "can": [0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37], "cannot": [6, 7, 8, 9, 17, 23, 25, 35, 36, 37], "capabl": [5, 18, 28], "capit": [15, 25], "captur": 9, "car": 11, "care": 6, "carefulli": 25, "carl": 31, "carli": 37, "carolin": 15, "carpentri": [1, 27], "carri": [8, 11, 30, 31, 32, 35, 36], "carrol": 37, "carter": 31, "case": [8, 10, 15, 25, 28, 36, 37], "cat": 10, "catalina": 25, "catch": [6, 11], "categor": 29, "categoris": 11, "catherin": [30, 31, 32, 35, 36], "caught": 11, "caus": [8, 25, 28], "caution": [0, 25], "cd": 23, "cell": [7, 8, 9, 10, 20, 21, 22, 37], "center": 33, "certain": [5, 6, 11, 15, 17, 18, 29, 35], "certainli": [6, 37], "certif": 25, "chang": [6, 10, 11, 15, 17, 23, 25, 29, 37], "chapter": [12, 15, 37], "char": 10, "charact": [5, 6, 7, 10, 15, 37], "characterist": 29, "charat": 15, "charl": 36, "charlott": 37, "charm": 7, "cheatsheet": 0, "check": [4, 5, 6, 11, 23, 29, 30, 31, 35, 37], "checkpoint": 23, "child": 15, "choic": [6, 11, 25], "choos": [10, 33], "christian": 15, "christoph": 2, "chronolog": [6, 11], "cite": 2, "clarifi": [0, 6, 37], "clariti": [11, 31], "class": [31, 32, 33, 35], "classifi": 11, "clau": 31, "clean": [15, 24], "clean_text_1": 15, "clean_text_2": 15, "cleaned_text": 15, "clear": [6, 9, 11, 24, 31, 37], "clearer": [31, 37], "clearli": 15, "click": [6, 8, 23, 24], "clidk": 20, "clock": 15, "close": [6, 8, 22, 25], "closer": [5, 8], "cloud": 37, "cm": 4, "cmap": 4, "cmd": [23, 24, 25], "code": [1, 2, 3, 6, 7, 8, 9, 10, 17, 19, 22, 25, 27, 28, 30, 31, 32, 33, 35, 36, 37], "coffe": [6, 11, 37], "cognit": 2, "cold": 4, "collaps": 23, "collect": [6, 9, 10, 11, 17, 37], "colon": [6, 10, 11], "color": [4, 6, 33], "colour": [5, 6, 10, 33], "colum": 18, "column": [18, 32, 33], "com": 15, "combin": [8, 9, 11, 17, 29, 32, 35], "come": [7, 11, 23, 25], "comma": [6, 9, 15, 18, 30, 31, 36], "command": [3, 7, 10, 23, 25, 28, 29, 30, 31, 37], "common": [6, 10, 17, 32], "commonli": [8, 17], "commonmark": 2, "compar": [5, 8, 18, 29, 31, 35], "comparis": 5, "comparison": [15, 17, 35], "compil": [16, 25], "complet": [13, 25], "complex": [33, 35, 36], "compos": [9, 15], "comprehens": [15, 19], "comput": [1, 5, 18, 19, 20, 21, 24, 25, 26, 27], "concat": 29, "concaten": [7, 8, 10, 29], "concept": [13, 16, 26], "concern": 6, "concis": [30, 31, 36], "concord": 15, "condit": [5, 8, 13, 25, 30, 36], "confer": 2, "configur": 21, "confirm": 23, "confus": [5, 16, 35], "congratul": [11, 25], "conjunct": 27, "connect": [1, 14, 25], "consecut": 7, "consequ": 0, "consid": [9, 17], "consider": 15, "consist": [5, 7, 10, 15, 31], "contain": [5, 6, 10, 11, 15, 17, 20, 21, 24, 29, 30, 31, 32, 33, 35, 37], "content": [0, 2, 3, 6, 9, 15, 17, 21, 23], "context": [15, 18], "contextlib": 4, "continu": [5, 11, 25, 32], "contrari": 8, "contrast": 9, "contribut": 15, "control": [17, 23, 31], "conveni": [29, 30, 31, 32, 33], "convent": [0, 10, 18, 28, 29], "convention": 28, "convers": [12, 35], "convert": [3, 5, 7, 11, 29, 32], "coolwarm": 4, "copenhagen": [1, 25, 26, 27], "copi": [6, 11, 23, 25, 31], "cop\u00eat": 15, "core": [24, 29, 30, 31, 35, 37], "corollari": 27, "corpor": 25, "correct": [7, 11, 17, 23], "correctli": [6, 8, 10, 11, 17, 28, 32], "correspond": [9, 24, 29, 32, 35, 36, 37], "cortex": 2, "could": [7, 9, 11, 30, 37], "count": [6, 7, 8, 9, 11, 30, 31, 33, 35, 37], "counter": [11, 37], "cours": [1, 7, 10, 11, 12, 13, 14, 17, 25], "courtenai": 31, "cover": [12, 13, 23, 31, 33], "crash": 37, "creat": [4, 7, 8, 9, 10, 11, 12, 13, 15, 17, 20, 21, 22, 23, 25, 33], "creation": [9, 29], "creatur": 15, "crimin": 15, "criteria": [11, 18, 31], "critic": 0, "cruyssen": [31, 35, 36], "csv": 33, "ctrl": [11, 23, 24], "cultur": [1, 27], "cume": [30, 31, 32, 35, 36], "curli": 24, "current": [1, 9, 10, 11, 24, 25, 27], "cursor": 24, "custom": 35, "custom_lin": 4, "cut": 7, "cwd": 30, "cycler": 4, "d": [3, 9, 10, 24, 30, 31, 35, 36], "d35": [31, 35], "dag": 25, "dai": [7, 15], "danger": 0, "danira": 36, "dark": 15, "data": [4, 6, 8, 10, 11, 12, 15, 18, 24, 25, 26, 31, 33, 35, 36, 37], "databas": 30, "datacamp": 25, "datafram": [33, 34], "datalab": [1, 27], "dataset": [18, 25, 30, 31, 32, 33, 35, 36], "de": [2, 15], "deal": 35, "dec": 15, "decent": 11, "decim": [5, 8, 17], "decod": 15, "deep": 30, "deeper": 22, "deepest": [1, 27], "def": [15, 37], "default": [3, 6, 23, 24, 25, 28, 29, 30, 32, 33, 37], "defin": [3, 6, 8, 10, 11, 17, 31, 32, 35, 37], "definit": [6, 15, 16, 37], "deform": 15, "del": 9, "delet": 22, "delic": 11, "delici": 11, "delus": 15, "dem": 15, "demand": 10, "den": 15, "denn": 0, "densiti": 33, "departur": 30, "depend": [2, 7, 8, 17, 23, 25, 28], "depth": [9, 22], "der": 15, "descend": 15, "describ": [0, 8, 15, 25, 30, 32, 36], "descript": [9, 25], "design": [17, 20, 21, 22, 26, 29, 31, 32, 36], "desir": [23, 37], "despacito": 9, "destin": 25, "det": 15, "detail": [3, 20, 21, 25, 32, 33], "detect": [7, 8], "determin": [7, 11, 27, 29, 30, 31, 35], "develop": [19, 25, 27], "develp": 25, "df": [18, 29, 31], "df_transpos": 29, "dictionari": [12, 16], "did": 37, "differ": [0, 1, 2, 5, 6, 10, 11, 12, 15, 17, 18, 22, 24, 25, 30, 32, 33, 36, 37], "different_vari": 37, "difficult": 10, "digit": [6, 8, 15, 37], "dimens": [29, 30, 31, 35], "dimension": [18, 29], "dire": 15, "direct": [0, 3], "directli": [5, 7, 23, 24, 25, 28, 31, 33, 35, 36], "directori": 37, "disabl": [24, 25], "discard": 9, "displai": [3, 8, 9, 11, 23, 25, 29, 30, 31, 32, 35, 36], "disrupt": 8, "diss": 15, "distanc": 6, "distant": 15, "distinct": 32, "distinguish": 15, "distribut": [32, 33], "dive": [12, 22, 24, 33], "divid": [5, 7], "divin": 15, "dk": 20, "dkk": 29, "do": [2, 4, 5, 6, 8, 9, 10, 11, 15, 17, 23, 25, 26, 29, 30, 31, 37], "document": [0, 2, 3, 4, 9, 11, 23, 31, 32, 33, 36], "documentaion": [1, 27], "doe": [5, 6, 7, 8, 9, 10, 15, 23, 25, 32, 37], "doesn": [5, 6, 8, 15, 32], "doesnt": 25, "dog": 10, "dollar": 4, "don": [7, 11, 16, 25, 37], "done": [5, 6, 7, 10, 11, 17, 25, 28, 29, 31, 32, 33], "doolei": [30, 31, 32, 35, 36], "dot": 33, "doubl": [6, 7, 15, 17, 23, 25, 31, 35, 36, 37], "down": [6, 8, 11, 15, 23, 24, 25, 37], "download": [1, 12, 15, 27, 28], "downward": 24, "dracula_bram": 37, "drag": 23, "draw": 6, "dream": 15, "drive": 25, "drop": [23, 25], "dropna": 32, "dsaio": 9, "dtype": [29, 31, 32, 35], "due": 35, "dure": [10, 37], "e": [6, 7, 8, 9, 10, 11, 15, 17, 20, 23, 24, 26, 29, 30, 31, 32, 36], "e46": [31, 35], "each": [0, 5, 6, 7, 8, 9, 10, 11, 12, 18, 23, 29, 30, 32, 33, 35, 37], "earlier": 23, "easi": [11, 15, 32, 33], "easier": [6, 15, 18, 24, 28, 29], "easiest": 25, "easili": [24, 25, 32], "ebook": 15, "ecosystem": 2, "edith": [30, 31, 32, 35, 36], "editor": [5, 6, 23], "edu": 21, "edward": 31, "effect": [9, 11, 22, 23, 31], "effici": [10, 22, 23, 24, 27, 29, 31, 32, 33, 35, 36], "efter": 15, "either": [5, 6, 7, 9, 11, 13, 15, 17, 25, 31, 35], "elaps": 7, "electron": 25, "eleg": 36, "element": [1, 6, 9, 17, 18, 29, 30, 35], "eleph": 10, "elizabeth": [31, 35, 36], "ellipsi": 30, "els": [5, 9, 10, 37], "elsewher": 0, "email": [20, 21], "emb": 4, "embark": [30, 31, 32, 35, 36], "embrac": 15, "emelia": 36, "emilia": 31, "emot": 37, "empti": [8, 10], "en": [0, 15], "enabl": [23, 24, 25, 32], "enclos": [5, 24], "encod": 37, "encount": [16, 19, 28], "encourag": [1, 20, 27], "end": [4, 5, 6, 10, 11, 13, 15, 17, 30, 31, 35, 36], "endpoint": 35, "engag": 11, "engin": [15, 24], "england": 15, "english": [8, 15], "englishman": 15, "enhanc": [22, 35], "enlighten": 15, "enrol": 7, "ensur": [1, 13, 15, 23, 24, 27, 28, 31, 35], "ensurepip": 25, "enter": [11, 23, 24, 25], "entir": [6, 9, 24, 29, 31, 32], "entri": [30, 31, 32, 35], "environ": [5, 6, 8, 25, 30, 37], "episod": [8, 9], "epub": 15, "equal": [6, 7, 9, 17, 29, 37], "equip": 31, "equival": [10, 35], "er": 15, "eras": 25, "erda": 17, "ernest": 31, "errno": 37, "error": [0, 6, 7, 9, 28, 31, 37], "esc": 24, "escap": [4, 5, 37], "especi": [17, 24], "espresso": 11, "essenti": [5, 13, 22, 30, 36], "estim": 33, "et": 15, "etc": [4, 5, 6, 8, 9], "eugen": 36, "european": 15, "evalu": [6, 11, 35], "evelyn": 31, "even": [5, 7, 9, 11, 13, 15, 28, 30, 37], "evenli": 7, "event": [8, 15], "everi": [7, 15, 23], "everydai": 15, "everyon": [7, 10], "everyth": 15, "evid": [2, 31], "evolv": 11, "ewr_422_yi": 6, "ex": 25, "exact": 31, "exactli": [8, 15, 30, 37], "exampl": [2, 4, 5, 6, 7, 8, 9, 10, 15, 17, 18, 20, 21, 23, 25, 31, 32, 35, 37], "exce": 35, "excel": [11, 15, 28], "except": 8, "excerpt": 15, "exchang": [6, 29], "exclaim": 5, "exclam": 28, "exclud": [17, 32, 35], "exclus": 36, "execut": [3, 6, 8, 9, 17, 24, 31, 36], "exercis": [12, 31], "exist": [5, 6, 8, 9, 10, 17], "exit": 11, "exitstack": 4, "exmampl": 0, "expand": 23, "expect": [7, 8, 10, 11, 26], "experi": [15, 21], "experiment": 7, "explain": [5, 7, 8, 9, 10, 11, 17, 20, 21, 29], "explan": [5, 10], "explicit": [31, 36], "explicitli": [7, 31, 32, 36], "explor": [23, 31, 37], "exploratori": 33, "export": 30, "express": [5, 7, 8, 9, 11, 15], "extend": [1, 5, 9, 27, 29], "extens": [0, 2, 33], "extern": 28, "extra": [7, 8], "extract": [5, 9, 15, 17, 18, 30, 31, 35], "extrem": [5, 6, 15, 37], "ey": 6, "eye_color": 6, "f": [6, 15, 37], "fact": 6, "faint": 15, "fair": 15, "fairi": 15, "fairli": 6, "fall": 10, "fals": [5, 11, 17, 30, 35], "falter": 35, "famili": 15, "familiar": [7, 26], "far": [6, 10, 11, 25], "fare": [29, 30, 31, 32, 33, 35, 36], "fare_in_dkk": 29, "farewel": 15, "fast": [10, 11], "fatima": 36, "favorit": 10, "fd": 37, "featur": [6, 20, 21, 22, 23, 24, 25, 28, 33, 37], "femal": [29, 30, 31, 32, 33, 35, 36], "feng": 8, "fetch": 9, "few": [5, 6, 15, 21, 25, 32, 33, 35, 37], "field": 15, "fig": 4, "figsiz": 4, "figur": [6, 7, 15, 33], "file": [3, 14, 18, 20, 21, 22, 25, 28, 33], "filenam": [6, 37], "filenotfounderror": 37, "filepath": 37, "filepath_of_text": 37, "fill": 29, "filter": [15, 36], "final": [6, 8, 9, 11], "find": [1, 5, 7, 8, 9, 15, 22, 23, 25, 26, 27, 30, 32, 33], "findal": 15, "finder": [23, 25], "fine": 25, "finger": [6, 23, 27, 37], "finicki": 25, "finish": [10, 25], "first": [5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 25, 30, 31, 32, 35, 36, 37], "first_nam": 6, "firstnam": 10, "fish": 10, "fit": 32, "five": [30, 35, 36], "fix": [4, 8, 10, 25, 28], "flabadab": 6, "flag": 28, "flash": 15, "flavor": 2, "flexibl": [31, 33], "float": [8, 9, 11, 18, 29, 30], "float64": [29, 30, 31, 32, 35], "floor": [5, 7], "florenc": [30, 31, 32, 35, 36], "flow": [8, 11, 17], "focu": [26, 33], "focus": [11, 24], "fold": 5, "folder": [23, 25, 30], "follow": [2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 15, 23, 24, 25, 29, 30, 32, 33, 35, 36], "food": 27, "fool": 15, "fora": 19, "fordi": 15, "forgot": 8, "form": [5, 9, 15, 17, 29], "format": [6, 18, 30, 37], "former": 7, "formula": 7, "forskellig": 0, "forward": 9, "found": [12, 20, 21, 25, 30, 31, 32], "foundat": [13, 26], "four": [5, 10, 17], "fourth": [9, 10], "fra": 15, "fraction": [7, 17], "frame": [29, 30, 31, 35], "franc": 15, "free": 26, "frenzi": 15, "frequenc": 37, "frequent": 37, "fridai": 15, "fright": 15, "from": [1, 4, 5, 6, 7, 8, 10, 11, 13, 15, 17, 18, 20, 21, 23, 24, 25, 27, 29, 33], "front": [1, 27, 28], "frontier": 2, "ft": 37, "fuction": 17, "fulfil": 11, "full": [7, 13, 15, 25, 30, 32], "full_nam": 7, "full_text": 37, "fulli": 16, "fun": [6, 11], "function": [2, 6, 7, 9, 10, 12, 15, 18, 24, 28, 29, 30, 31, 32, 35, 36, 37], "fundament": [6, 15, 37], "further": [20, 21, 23, 31, 33, 36, 37], "futrel": [30, 31, 32, 35, 36], "futur": [6, 8, 25, 28], "fynnei": 36, "g": [6, 7, 9, 15, 17, 23, 24, 26, 31, 32], "gain": [15, 26], "gallant": 15, "game": 13, "gather": [11, 26], "gbp": 29, "geeksforgeek": [29, 30], "gener": [0, 6, 9, 11, 31, 32, 33], "geneva": 15, "geneves": 15, "georg": 31, "german": 15, "germani": 15, "get": [1, 2, 3, 5, 8, 9, 15, 26, 27, 31, 32, 36, 37], "giant": [1, 27], "gilman": 37, "gip": 10, "giraff": 10, "girl": 15, "give": [7, 10, 15, 25, 31, 33, 37], "given": [6, 7, 8, 9, 18, 29, 32], "go": [8, 10, 11, 12, 23, 24, 25, 28, 36], "goal": [9, 11], "godwin": 15, "goe": [5, 8, 9, 10], "gold": [8, 9], "gone": 37, "good": [7, 8, 11, 15, 19, 25, 33], "googl": 19, "gosta": [31, 35], "got": 8, "grade": 11, "graham": [30, 31, 32, 35, 36], "grammar": [8, 17], "grammat": 15, "graphic": 33, "grasp": 16, "great": [11, 15], "greater": [5, 7, 11, 31, 35, 36], "greedi": 15, "green": [6, 10, 37], "greenland": 15, "greet": 17, "grimm": 15, "group": 10, "grow": 10, "guess": 6, "guessed_correctli": 11, "guid": [4, 8, 15, 22, 23, 24, 25, 28, 33], "gutenberg": 15, "h": [7, 31], "ha": [1, 5, 6, 7, 8, 9, 10, 15, 17, 18, 19, 24, 25, 27, 30, 31, 35, 36, 37], "had": [15, 37], "half": 7, "halo": 15, "hand": [9, 20], "handi": 5, "handiest": [6, 37], "handl": [7, 32, 36], "hang": 15, "hansen": 31, "happen": [6, 7, 15, 23, 35, 37], "har": 0, "harder": 37, "harri": [30, 31, 32, 35, 36], "harrypotter1": 9, "have": [1, 3, 6, 9, 10, 11, 12, 13, 15, 17, 20, 21, 25, 26, 27, 28, 30, 31, 35, 36, 37], "haven": 6, "hdhpk14": 2, "he": [15, 37], "head": 25, "heath": [30, 31, 32, 35, 36], "heaven": 15, "heavi": 15, "heer": 2, "height": 33, "heikkinen": [30, 31, 32, 35, 36], "helen": [30, 31, 32, 35, 36], "hello": [5, 7, 8, 17, 25], "help": [0, 1, 2, 5, 6, 9, 12, 15, 16, 22], "henri": [30, 31, 32, 35, 36], "hentet": 0, "her": 37, "here": [0, 1, 2, 4, 5, 6, 7, 8, 10, 11, 14, 20, 21, 23, 24, 25, 27, 28, 29, 30, 31, 33, 35, 37], "herfra": 0, "herself": 37, "hewlett": [31, 35, 36], "hexbin": 33, "hi": [5, 15, 37], "hickman": 30, "hide": 20, "high": [0, 6, 9, 11], "higher": [6, 8, 11, 30], "highli": 33, "highlight": [24, 25], "him": 37, "himself": 37, "hint": [0, 6, 9, 11], "hire": 15, "hist": 33, "histogram": 33, "histor": 15, "hit": 15, "hivb10078u": 14, "hold": [9, 18, 23, 29, 30], "holdgraf": 2, "holdgraf_evidence_2014": 2, "holidai": 15, "homer": 15, "horizont": [29, 33], "hostedtoolcach": 37, "hot": 4, "hover": 21, "how": [0, 1, 3, 6, 7, 8, 11, 12, 15, 17, 19, 23, 24, 26, 27, 28, 30, 31, 36, 37], "howel": [30, 31, 32, 35, 36], "howev": [5, 6, 7, 11, 23, 25, 28, 30, 31, 33, 37], "html": [0, 4], "http": [0, 15], "hugh": 31, "hulda": 36, "human": [2, 6, 15, 27], "hundr": 9, "hung": 15, "hvad": 15, "hvi": 15, "hvordan": 0, "hyphen": 9, "i": [3, 4, 5, 12, 13, 15, 17, 18, 19, 22, 24, 28, 31, 32, 33, 35, 36, 37], "icard": 31, "icon": [20, 21, 23, 24, 25], "id": [10, 25], "idea": [8, 19, 25, 31], "ideal": 6, "identifi": [15, 18, 30, 31], "idiom": 6, "ignor": [8, 17], "igonr": 5, "ii": 4, "ikk": 15, "illustr": [5, 15, 33, 37], "iloc": [34, 35], "imag": 4, "imagin": 11, "immedi": 0, "import": [0, 4, 6, 7, 8, 11, 15, 18, 23, 33, 37], "improv": 11, "inadvert": [1, 27], "inbox": 25, "includ": [0, 3, 4, 5, 8, 9, 10, 11, 15, 17, 21, 23, 25, 28, 30, 31, 32, 33, 37], "inclus": [35, 36], "incomplet": 8, "incorrect": 0, "incorrectli": 8, "increas": 15, "incredibli": 15, "increment": [10, 11], "indent": [10, 11], "indentationerror": 10, "independ": 32, "index": [8, 10, 29, 30, 36], "indexerror": [9, 10], "indic": [0, 6, 8, 10, 15, 17, 18, 23, 29, 30, 31, 33, 35], "indispens": 36, "individu": [5, 6, 24], "inds\u00e6tt": 15, "ineffici": [31, 36], "inf": 14, "infant": 15, "inferior": 15, "info": [31, 35], "inform": [0, 3, 4, 6, 7, 9, 17, 18, 22, 29, 31, 32, 33], "inher": 32, "inherit": 6, "init": 3, "initi": [6, 8, 9, 10, 11, 17, 25], "inlin": 2, "inner": [31, 35], "input": [2, 8, 17, 23, 25], "insert": [2, 9, 15, 24, 37], "insid": [6, 8, 10, 31, 35, 37], "insight": [0, 15], "inspect": [15, 30], "inspir": [1, 27], "inspirit": 15, "instal": [1, 12, 20, 21, 26, 27], "instanc": [8, 31, 32, 37], "instantli": 25, "instead": [5, 6, 9, 10, 11, 25, 32, 36, 37], "instruct": [3, 6, 12, 23, 24, 25], "insuper": 15, "int": [5, 6, 7, 8, 11], "int64": [29, 30, 31, 32, 35], "integ": [8, 9, 10, 11, 29, 30, 31, 35, 36], "integr": 25, "intend": 1, "intent": 28, "interact": [4, 5], "interactiveshel": 37, "interest": [15, 27, 31, 32], "interfac": 33, "intermediari": 25, "intern": 2, "interpret": [7, 9], "interrupt": 11, "interv": [9, 23], "intric": 35, "intro": [1, 27], "introduc": [11, 35], "introduct": [1, 13, 27, 33], "intuit": 36, "invalid": [7, 8, 37], "involv": [18, 36], "io": 0, "io_open": 37, "ion": 4, "ip": 10, "ipykernel_2551": 37, "ipynb": [2, 20, 21], "ipython": 37, "irectori": 30, "irresist": 15, "irrespect": 35, "isin": [31, 35], "isn": [11, 25], "isna": 31, "isol": 30, "issu": [0, 25, 30, 31], "itali": 15, "item": [5, 6], "iter": [9, 10, 11], "its": [6, 7, 8, 9, 10, 11, 15, 18, 23, 24, 25, 27, 28, 29, 31, 33, 36, 37], "itself": [5, 6, 15, 24, 37], "j": [31, 35, 36], "jacqu": [30, 31, 32, 35, 36], "jame": [31, 35], "jeg": [0, 15], "jepsen": 37, "job": [35, 36], "johan": [31, 35, 36], "johanna": 31, "john": [30, 31, 32, 35, 36], "johnston": [30, 31, 32, 35, 36], "join": [5, 9, 15, 17], "jon": 10, "joseph": 36, "jr": [31, 35, 36], "judgement": 15, "juli": 15, "juliet": 9, "juliu": 36, "jump": 25, "june": 15, "juoza": [30, 31, 32, 35, 36], "juptyt": 5, "jupyt": [1, 2, 3, 4, 6, 7, 10, 11, 17, 23, 25, 27, 28, 30], "jupyterbook": [0, 2], "jupytext": 3, "jura": 15, "just": [2, 6, 7, 8, 9, 22, 25, 26, 28, 32, 33, 37], "kaggl": 30, "kald": 15, "kan": [0, 15], "karl": [30, 31, 32, 35, 36], "karolina": [31, 35, 36], "kb": [20, 30, 31, 35], "kde": 33, "keep": [4, 6, 7, 10, 11], "kei": [23, 25], "kernel": [3, 6, 11, 22, 30, 33], "keyboard": 23, "keyword": 33, "kill": 9, "kind": [2, 5, 8, 9, 11, 17, 33], "kingcom": [31, 35, 36], "knight": 2, "know": [1, 6, 8, 11, 17, 24, 27, 31, 37], "knowledg": [11, 26, 31], "known": [5, 8, 17, 30, 31, 36], "koden": 0, "kub": [1, 26, 27], "kubdatalab": 20, "kwarg": [33, 37], "l": [9, 37], "la_": 4, "lab": [5, 6, 10, 11, 17, 23, 25, 28], "label": [6, 7, 18, 29, 31, 33, 35, 36], "lack": 31, "ladi": 15, "laina": [30, 31, 32, 35, 36], "languag": [2, 5, 6, 7, 9, 10, 12, 16, 17, 19, 27, 37], "larg": [5, 10, 30, 35], "larger": 8, "largest": 8, "larsson": 31, "last": [5, 6, 7, 9, 10, 15, 17, 23, 24, 25, 30, 37], "lastnam": 10, "later": [5, 6, 8, 10, 25, 29, 37], "latest": [0, 25, 28], "latter": 7, "launch": 25, "launcher": [23, 25], "lave": 15, "lavet": 0, "lawrenc": 36, "layout": 33, "lead": [31, 36], "learn": [1, 12, 15, 19, 22, 24, 25, 27, 31], "least": [8, 9], "leav": [6, 8, 15, 17], "left": [6, 9, 20, 23], "legal": 10, "legend": 4, "lemonad": 37, "len": [6, 7, 8, 9, 10, 15], "lenght": 25, "length": [5, 9, 10, 25, 29, 31, 35], "lengthen": 9, "leonard": [31, 35, 36], "less": [0, 5, 25, 31], "lesson": [5, 7, 9], "let": [1, 3, 6, 7, 8, 17, 27, 31, 37], "letter": [6, 7, 8, 9, 15, 37], "level": [0, 24, 33], "lewi": 30, "lib": 37, "librari": [1, 6, 7, 18, 19, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37], "library_nam": 6, "licens": 25, "light": 9, "like": [2, 3, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 20, 21, 22, 23, 25, 29, 30, 31, 32, 33, 37], "likewis": 30, "lili": [30, 31, 32, 35, 36], "lilian": 31, "limit": [0, 25, 30, 31, 35], "line": [2, 3, 4, 6, 7, 8, 9, 10, 11, 17, 18, 25, 28, 29, 30, 31, 32, 33, 35, 36, 37], "line2d": 4, "link": [17, 25], "linspac": 4, "linux": 24, "list": [0, 6, 10, 11, 13, 16, 17, 18, 25, 29, 31, 32, 35, 36], "list_nam": 9, "listen": 15, "liter": [7, 8], "literatur": [15, 37], "littl": [6, 15, 37], "live": [15, 21], "ll": [2, 6, 25, 31, 37], "load": [21, 30, 31, 32, 33, 35, 36], "loan": 7, "loc": [34, 35], "local": [1, 25, 27, 28], "locat": [6, 9, 25, 30, 36], "log": 25, "logic": [5, 10, 17, 27, 31, 35], "login": 25, "logspac": 4, "london": 15, "long": [5, 6, 7, 9, 11, 15, 23, 37], "longer": 25, "look": [5, 6, 7, 8, 9, 10, 11, 15, 22, 29, 37], "loop": [9, 13, 15], "lot": [2, 4, 7, 11, 16, 25, 37], "love": 15, "low": [6, 9, 11], "lower": [6, 8, 15, 37], "lowercas": 15, "lowercase_text": 37, "lt": 37, "lucern": 15, "lullabi": 15, "luxuri": 15, "lw": 4, "lyric": 37, "m": [6, 15, 25, 37], "machin": [11, 25], "maco": [24, 28], "made": [10, 23, 30, 32, 37], "magic": [7, 30], "magistr": 15, "magnitud": 5, "mai": [0, 5, 6, 7, 8, 11, 15, 21, 24, 25, 28, 29, 30, 31, 32, 35, 36, 37], "main": 28, "maintain": [23, 25, 31], "make": [1, 4, 5, 6, 7, 8, 10, 11, 15, 18, 22, 24, 25, 26, 27, 28, 29, 32, 33, 37], "male": [29, 30, 31, 32, 33, 35, 36], "man": [0, 15], "manag": [15, 18, 22, 25, 29], "mang": 15, "mani": [2, 3, 5, 6, 9, 10, 11, 15, 19, 21, 25, 27, 28, 30, 31], "manipul": [30, 31, 32, 35, 37], "manual": [6, 23], "map": 0, "margaret": [15, 30, 31, 32, 35, 36], "marguerit": 36, "mari": [15, 31, 35, 36], "maria": 36, "mark": [6, 7, 8, 17, 24, 28], "markdownfil": 3, "markedli": 2, "markup": 2, "martha": 31, "mask": [35, 36], "masselmani": 36, "master": [31, 35, 36], "match": [7, 15, 29], "materi": [1, 20, 21, 27], "math": [4, 7, 17], "mathemat": 6, "mathemath": 5, "matplotlib": [4, 33], "matter": [5, 6, 11], "mattter": 25, "max": [9, 17, 32], "max_column": 30, "max_row": 30, "maximum": [9, 30], "mbox": 4, "mccarthi": [31, 35, 36], "mcgowan": 36, "md": [2, 3], "me": [15, 21, 37], "mean": [1, 4, 5, 6, 8, 9, 11, 15, 17, 25, 27, 32, 37], "meaning": [8, 10], "meaningful_word": 37, "meaningful_words_t": 37, "meaningfulli": 8, "meaningless": 32, "meant": 21, "measur": 9, "med": 15, "median": 32, "medium": 4, "melani": [1, 27], "melwalsh": 21, "memori": [24, 31, 35], "memory_usag": 30, "mention": [9, 25], "menu": [20, 23, 24, 25], "merchant": 15, "mere": 15, "messag": [6, 7, 10, 17, 28, 37], "met": [5, 11, 17], "metadatacharact": 15, "metaphor": 27, "method": [0, 15, 18, 23, 24, 26, 27, 29, 30, 31, 32, 33, 35, 36], "method_nam": 9, "metric": 11, "mi": 8, "microsoft": 25, "middl": 20, "might": [0, 5, 6, 7, 8, 16, 23, 25, 31, 35, 36, 37], "min": [6, 9, 32], "mind": [10, 25, 27], "miniatur": 15, "minimum": [6, 9], "minu": [5, 9], "minut": [6, 15, 21, 23], "misinterpret": 32, "miss": [1, 18, 27, 29, 30, 32, 35, 36], "misspel": [6, 10], "mitski": 37, "mix": 11, "mockeri": 15, "mockingbird": 9, "mode": 22, "moder": 11, "modern": 15, "modif": [17, 31], "modifi": [1, 9, 17, 23, 25, 27, 31], "modul": [8, 11, 17, 37], "modulo": 7, "moment": 11, "momentari": 15, "mondai": 15, "monoton": 15, "montvila": [30, 31, 32, 35, 36], "monypeni": [31, 35, 36], "moran": [31, 35], "more": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 17, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 37], "moreov": [2, 35], "most": [1, 2, 6, 7, 8, 9, 10, 15, 20, 21, 22, 23, 24, 25, 27, 28, 35, 36, 37], "most_common": 37, "most_frequent_meaningful_word": 37, "mostli": 25, "mous": 24, "move": [9, 11, 22, 25], "mr": [15, 30, 31, 32, 35, 36], "much": [1, 5, 6, 10, 11, 25, 27, 30, 32, 37], "mule": 15, "mulipli": 5, "multipl": [6, 7, 9, 11, 17, 23, 32, 37], "multipli": [5, 7, 29], "murder": 15, "murderess": 15, "music": 37, "must": [0, 2, 7, 8, 10, 11, 25, 26, 28, 35], "mutabl": 6, "my": [10, 15, 37], "my_first_vari": 6, "myself": 37, "myst": 0, "mysteri": 15, "m\u00e5de": 15, "n": [2, 4, 6, 7, 9, 10, 15, 37], "name": [5, 7, 8, 17, 18, 23, 27, 29, 30, 31, 32, 33, 35, 36], "nameerror": [6, 8, 10, 37], "nan": [29, 30, 31, 32, 35, 36], "narrow": 15, "nasser": 36, "natur": 32, "navig": [16, 22, 25], "nby": 15, "ndigit": 8, "necess": 15, "necessari": [7, 26], "necessarili": 7, "need": [3, 5, 6, 7, 8, 9, 10, 11, 15, 17, 20, 21, 23, 24, 25, 26, 28, 29, 30, 31, 33, 35, 36, 37], "neg": [6, 8, 9, 11, 17], "negat": 5, "neither": 8, "nelson": 31, "nest": [6, 10], "neurosci": 2, "never": 11, "new": [6, 7, 8, 9, 10, 11, 12, 15, 17, 23, 24, 25, 37], "new_df": 30, "new_vari": 37, "newer": 23, "newest": [25, 28], "next": [5, 8, 9, 15, 23, 24, 25, 32], "nichola": 36, "ning": 15, "non": [9, 15, 30, 31, 35], "none": [8, 9, 25, 30], "nor": [15, 37], "normal": [7, 8, 10], "north": 15, "norton": [31, 35, 36], "notat": 31, "note": [0, 2, 5, 6, 7, 8, 24, 36, 37], "notebook": [1, 2, 6, 7, 11, 12, 15, 22, 23, 24, 25, 27, 28, 30, 35, 37], "noth": 8, "notic": [5, 6, 10, 25], "notna": [31, 35], "now": [5, 6, 8, 9, 11, 25, 28, 29, 30, 31, 37], "np": [4, 32], "null": [30, 31, 35], "num_as_float": 7, "num_as_int": 7, "num_as_str": 7, "num_class": 7, "num_per_class": 7, "num_stud": 7, "number": [5, 6, 8, 9, 10, 15, 17, 18, 25, 29, 30, 31, 33, 35, 37], "number_of_desired_word": 37, "numer": [5, 18, 32], "numeric_onli": 32, "numpi": 4, "nurs": 15, "o": [9, 15, 25, 30], "o2": [30, 31, 32, 35, 36], "obei": 6, "object": [17, 18, 29, 30, 31, 33, 35, 36], "object_nam": 9, "obtain": 29, "obviou": 0, "oc": 6, "occur": [7, 8, 23], "occurr": 15, "ocean": 15, "odiou": 15, "off": [2, 3, 8, 25], "offer": [1, 27, 31, 32, 33, 35, 36], "offic": [17, 36], "offici": [1, 11, 22, 27, 32, 33, 36], "often": [0, 5, 7, 10, 15, 18, 28, 33, 37], "og": 15, "oh": 15, "ok": 37, "old": [6, 9, 29], "older": 25, "om": 15, "omit": 8, "onc": [6, 9, 10, 17, 25, 37], "one": [2, 5, 6, 7, 8, 9, 10, 11, 15, 17, 24, 25, 28, 29, 32, 37], "ones": [11, 30], "onli": [5, 6, 9, 11, 15, 23, 25, 28, 29, 30, 31, 32, 33, 35, 36, 37], "onlin": [8, 15, 19, 20, 21], "open": [11, 15, 22, 24, 26, 37], "oper": [6, 8, 9, 10, 11, 18, 28, 29, 30, 35, 36, 37], "operand": [5, 7, 17], "opportun": 13, "opposit": [5, 17], "opreat": 5, "opt": 37, "optim": 35, "option": [0, 5, 23, 25, 28, 30, 33], "optr\u00e6der": 15, "oq": [31, 35], "ord": 15, "orden": 15, "order": [5, 6, 8, 9, 10, 24, 25, 29, 32], "ordin": 32, "org": [0, 2, 15, 25], "organ": [6, 22, 23, 24, 29], "origin": [6, 9, 10, 11, 17, 18, 31, 35, 37], "ork": 30, "oscar": 31, "other": [1, 3, 6, 7, 8, 9, 10, 15, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 33, 36, 37], "otherwis": [5, 8, 10, 11], "oticaps": 9, "our": [1, 6, 10, 12, 13, 15, 17, 19, 25, 26, 28, 32, 37], "ourselv": [28, 37], "out": [1, 4, 5, 6, 7, 8, 9, 10, 11, 15, 25, 27, 30, 34], "outer": [8, 31, 35], "output": [3, 5, 6, 7, 8, 9, 11, 17, 24, 25, 29, 37], "outsid": [6, 11, 37], "over": [10, 11, 21, 25, 37], "overal": 33, "overlook": 0, "overview": [2, 5, 30], "overwrit": [6, 10], "overwritten": [9, 10], "owen": [30, 31, 32, 35, 36], "own": [6, 9, 11, 12, 20, 21, 31, 36, 37], "p": [10, 30], "pacif": 15, "packag": [25, 28, 37], "page": [1, 2, 3, 10, 11, 15, 20, 21, 25, 26, 27, 30, 31], "pages_read": 10, "pages_remain": 10, "pages_written": 11, "paid": 33, "pain": 10, "palsson": [31, 35, 36], "panda": [1, 16, 17, 26, 27, 34], "paper": 11, "paramet": [17, 29, 30], "parch": [30, 31, 32, 35, 36], "parent": 23, "parenthes": [6, 8, 11, 24, 29, 35], "parser": 0, "part": [1, 6, 7, 9, 17, 26, 27, 31, 36], "parti": 25, "particip": 13, "particular": [9, 17, 18], "particularli": [24, 35, 36], "partli": 15, "paslei": 2, "pass": [6, 8, 17, 32], "passeng": [30, 32, 33, 35], "passengerid": [30, 31, 32, 35, 36], "past": [11, 23], "path": [3, 19, 23], "pathwai": 25, "patient": 21, "patrick": [30, 31, 32, 35, 36], "pattern": [10, 15, 32], "pc": [25, 30, 31, 32, 35, 36], "pclass": [30, 31, 32, 33, 35, 36], "pd": [28, 30, 31, 32, 33, 35, 36], "pdf": [1, 27], "peel": [30, 31, 32, 35, 36], "peopl": [6, 7, 8, 25, 28, 37], "per": [7, 32], "percentag": 5, "perfect": 7, "perfectli": 11, "perform": [6, 7, 11, 15, 17, 24, 31, 32, 35, 36], "perhap": 25, "period": [7, 15], "perkin": 37, "persdott": 31, "persist": 10, "person": [6, 8], "perspect": 27, "peter": 31, "petersburgh": 15, "pg84": 15, "philosoph": 9, "phrase": 15, "pick": 37, "pictur": 15, "piec": 17, "pig": 10, "ping": 8, "pip": 28, "pip3": 25, "pitfal": [0, 31], "place": [5, 8, 9, 15, 19, 30, 31], "placement": 10, "plain": [15, 18], "plank": 36, "platform": 19, "pleas": [1, 12, 27], "plot": [4, 32, 34], "plot_typ": 33, "plt": 4, "plu": [7, 15, 24], "point": [15, 17, 18, 25, 37], "pointer": 8, "polish": 33, "poor": [8, 15], "poorli": 37, "pop": [9, 25], "popular": 19, "portion": [5, 9, 18], "portrait": 15, "posit": [5, 6, 9, 11, 15, 17, 29, 35, 36], "possess": 13, "possibl": [15, 17, 25], "possibli": 7, "post": [4, 11], "potenti": [0, 18, 31, 35], "potter": [31, 35, 36], "pow": 5, "power": [2, 5, 31, 32, 36], "powershel": 23, "practic": [6, 24], "pre": 17, "preced": [11, 15], "precis": [6, 8, 17, 31, 37], "predefin": 32, "predict": [2, 8, 25], "prefer": 24, "preinstal": 25, "prepar": 13, "presenc": [3, 31], "present": [1, 27, 33, 35], "preserv": 15, "press": [11, 23, 24, 25], "pressur": [11, 30], "presumpt": 15, "prevent": 7, "preview": 9, "previou": [6, 10, 15, 31, 32, 35], "price": [29, 32], "primari": [19, 20], "print": [3, 7, 8, 9, 10, 15, 17, 20, 21], "printout": 6, "prior": 21, "privat": 25, "probabl": [6, 37], "problem": [0, 7, 8, 10], "problemat": 8, "process": [5, 11, 15, 16, 17, 25, 33], "produc": [8, 9, 10], "product": 5, "program": [5, 6, 7, 8, 9, 10, 16, 17, 19, 25, 37], "progress": [15, 23], "project": [6, 11, 15, 20, 21, 23], "prometheu": 15, "promis": [6, 15, 37], "prompt": [23, 28], "proof": 15, "prop_cycl": 4, "proper": [1, 27], "properli": [2, 10, 11, 37], "properti": [5, 18, 31, 35, 36], "proport": 33, "proverbi": [1, 27], "provid": [6, 11, 17, 18, 22, 23, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36], "pseudocod": 11, "puberti": 37, "punctuat": [6, 8, 37], "punktum": 15, "pure": [35, 36], "purpos": [2, 8], "put": [6, 15, 37], "pwd": 30, "py": 37, "pyplot": 4, "python": [1, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 23, 26, 27, 28, 29, 30, 31, 35, 37], "python3": [25, 37], "python_regex": 15, "p\u00e5": 15, "q": [30, 31, 32, 35, 36], "quantiti": 32, "queri": 7, "question": [5, 6, 7, 8, 9, 10, 11], "quick": [24, 30, 33], "quickli": [24, 32, 33, 37], "quit": 11, "quot": [7, 10, 24], "quotat": [6, 7, 8, 17], "quotient": 5, "r": 15, "rae": 37, "rain": 15, "rais": 37, "ramsai": 2, "randint": 11, "randn": 4, "random": [4, 11], "rang": [4, 5, 9, 11, 17, 33, 35, 36], "rangeindex": [30, 31, 35], "rank": 32, "rapidli": 15, "rare": 9, "rate": 29, "rather": [6, 9, 10, 31, 32, 36], "raw_text": 15, "rcparam": 4, "re": [11, 15, 25, 31, 33], "reach": 10, "read": [6, 7, 8, 10, 11, 17, 25, 27, 28, 31, 32, 33, 34, 35, 36, 37], "read_": 30, "read_csv": [30, 31, 32, 33, 35, 36], "read_excel": 30, "readabl": [6, 36, 37], "reader": [0, 11, 28], "readi": [25, 30, 33], "readthedoc": 0, "real": [6, 11, 17, 37], "realiti": 15, "realiz": 15, "realli": 11, "realpython": 25, "rearrang": 24, "reason": [7, 8, 27, 31], "reassign": 6, "recent": [6, 7, 8, 9, 10, 23, 37], "recognit": [1, 27], "recommend": [6, 11, 25, 26, 27, 31], "recompens": 15, "rectangular": 32, "red": [6, 10], "redgreenblu": 10, "refer": [0, 2, 5, 7, 9, 11, 16, 17, 18], "reflect": [20, 23, 32], "regard": 8, "regardless": 24, "regex101": 15, "regular": [2, 9, 11, 15, 23], "reinforc": [6, 37], "rel": [6, 15, 30], "relat": [0, 11, 15, 19, 28], "relationship": 33, "releas": 25, "relev": [6, 15, 31], "reli": [28, 31], "reliabl": [25, 31], "remain": [7, 8, 10, 11, 15], "remaind": [5, 7], "remark": 15, "rememb": [6, 7, 8, 9, 10, 11, 12, 19, 35, 37], "remov": [9, 10, 15, 17, 25, 37], "renam": 23, "render": 2, "reopen": 6, "reorder": [10, 24], "repeat": [7, 8, 10, 17], "repeatedli": 11, "replac": [6, 10, 15, 23], "replic": 21, "report": [5, 6, 8, 9], "repres": [5, 7, 9, 17, 18, 29, 30, 31, 32, 33, 35], "reproduc": 4, "republ": 15, "request": [15, 25], "requir": [0, 7, 8, 11, 17, 24, 25, 26, 27, 28, 29, 31, 33, 35], "rerun": [6, 24], "research": 25, "reserv": [6, 37], "reset": 6, "reshap": [18, 29], "resist": [6, 37], "resourc": [19, 22], "respect": [23, 25, 35], "respond": 25, "ressourc": [1, 27], "rest": [3, 15], "restor": 15, "result": [5, 6, 7, 8, 9, 10, 11, 15, 30, 31, 32, 35, 37], "retain": 10, "rethink": 6, "retreat": 15, "retriev": 15, "return": [5, 7, 9, 11, 15, 17, 25, 29, 30, 31, 32, 35, 36, 37], "reusabl": 17, "reuss": 15, "rev": [30, 31, 32, 35, 36], "reveal": [20, 21], "revers": 9, "revert": 23, "review": [12, 15], "revisit": 27, "rewrit": 36, "rgb": 10, "rice": [31, 35, 36], "rich": 8, "richard": [31, 35, 36], "rid": 15, "right": [5, 6, 7, 9, 15, 21, 23, 25], "rint": 30, "rise": 15, "risk": 0, "robert": [2, 15], "robust": 35, "rock": 15, "roman": 15, "romeo": 9, "room": 9, "root": 25, "row": [7, 18, 29, 30, 32], "rule": [6, 8, 11, 17], "run": [1, 3, 5, 6, 8, 10, 11, 12, 20, 21, 22, 23, 26, 27, 28, 30, 37], "runtim": [9, 10], "russia": 15, "russian": 15, "rut": 36, "sa": 15, "safe": [9, 31], "sai": [6, 7, 15, 25], "sake": 37, "salli": [31, 35, 36], "same": [2, 5, 6, 8, 9, 11, 21, 24, 29, 30, 31, 32, 36, 37], "sampl": 4, "san": 15, "sandstrom": 36, "saundercock": 36, "save": [22, 23, 25, 30], "savil": 15, "saw": 31, "scenario": [9, 31, 35, 36], "scene": 15, "scienc": [6, 19], "scipt": 11, "scissor": 24, "scope": 15, "scratch": 17, "screen": 25, "script": [6, 13, 23, 28, 37], "scroll": 25, "se": 0, "sea": 15, "search": [15, 23], "season": 10, "sec": 6, "second": [5, 6, 7, 9, 10, 11, 13, 15, 23, 36], "secret": 11, "secret_numb": 11, "section": [5, 12, 22, 23, 24], "secur": 23, "see": [0, 1, 2, 3, 4, 6, 7, 8, 9, 12, 15, 17, 20, 21, 23, 24, 25, 28, 29, 30, 31, 32, 37], "seealso": 0, "seed": 4, "seem": [5, 16, 17], "seen": [6, 8, 31, 35, 36], "select": [6, 9, 18, 23, 24, 25, 29, 30, 32], "selector": 31, "self": [6, 8, 25], "sell": 25, "selma": 31, "semant": 27, "semest": 7, "sens": [5, 6, 7, 8, 15, 25, 32], "sensit": 25, "sentenc": 8, "separ": [6, 7, 9, 18, 28, 30, 35], "sequenc": [5, 10, 17, 18, 37], "seri": [6, 17, 25, 33], "seriou": 0, "serv": 2, "servant": 15, "server": 23, "servic": [21, 23], "session": 25, "set": [5, 6, 7, 9, 10, 11, 15, 17, 18, 23, 24, 25, 26, 29, 30, 33, 37], "set_opt": 30, "settingwithcopywarn": 31, "sever": [0, 11, 25, 26, 33], "sex": [29, 30, 31, 32, 33, 35, 36], "shakespear": 15, "shape": [18, 29, 31, 35], "share": 11, "shatter": 15, "she": [5, 37], "shell": 28, "shellei": 15, "shift": [23, 24, 27], "short": [5, 6, 11, 13, 17, 36, 37], "shortcut": [23, 32], "shorten": 9, "should": [1, 3, 7, 10, 11, 20, 25, 27, 30, 37], "shoulder": [1, 27], "show": [2, 3, 6, 8, 10, 15, 23, 30, 33, 37], "shown": [5, 9, 25], "shut": [8, 23], "shutdown": 23, "sibsp": [30, 31, 32, 35, 36], "side": [0, 5, 9, 25, 31], "sidebar": [20, 23], "sign": [1, 4, 6, 7, 15, 24, 27, 37], "signal": 10, "similar": [0, 2, 9, 11, 12, 29], "similarli": [31, 36], "similiar": 11, "simpl": [2, 6, 8, 9, 10, 11, 18, 26, 30, 31, 33, 36], "simpler": [8, 33, 37], "simpli": [10, 25, 37], "simplifi": [18, 28, 29, 33, 35, 36], "simultan": 31, "sin": 15, "sinc": [7, 8, 11, 32], "singl": [6, 7, 9, 17, 18, 23, 31, 35, 37], "single_lett": 10, "site": [15, 37], "situat": [8, 24], "six": 15, "size": [9, 32], "skew": 32, "skill": 11, "skip": [25, 30], "skrevet": 15, "skull": 15, "slice": [35, 36], "slight": 2, "slightli": [8, 25], "slither": 25, "sloper": 36, "slow": [9, 11, 25], "small": [2, 13, 15, 17], "smaller": [8, 11, 17], "smallest": 8, "smart": 15, "smith": 10, "smooth": 25, "sm\u00e5t": 15, "snake": 6, "so": [0, 1, 3, 5, 6, 7, 9, 10, 11, 12, 15, 17, 21, 23, 25, 26, 27, 28, 30, 36, 37], "social": 6, "softwar": [17, 25, 29], "solut": 36, "solv": [0, 6, 8, 11, 15, 25], "some": [2, 4, 5, 6, 7, 9, 10, 11, 15, 17, 19, 25, 26, 31, 37], "someon": 6, "someth": [0, 6, 10, 11, 17, 25, 29, 37], "sometim": [6, 25, 37], "song": 9, "sort": [15, 33], "sort_index": 33, "soton": [31, 35], "soul": 15, "sourc": [6, 8, 20, 21, 27, 30], "southern": 15, "sp": 37, "space": [5, 6, 10, 11, 15, 17, 23, 25, 37], "span": 2, "special": [0, 2, 5, 6, 8, 15, 18, 31, 35, 36], "specif": [2, 7, 9, 11, 17, 18, 23, 30, 32, 33, 36], "specifi": [5, 8, 9, 10, 17, 29, 30, 33, 35, 36], "speed": [11, 36], "spell": 8, "sphinx": 2, "split": [32, 37], "split_into_word": 37, "split_word": 37, "spoke": 8, "spotlight": 23, "spreadsheet": [7, 29, 30], "spring": 10, "squar": [5, 6, 7, 9, 24, 31, 36], "ssl": 25, "st": 15, "stabl": 0, "stackoverflow": 19, "staff": 25, "stai": 11, "stand": [1, 2, 15, 17, 18, 27], "standard": [0, 6, 7], "start": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 23, 26, 29, 31, 36, 37], "starter": 2, "state": [4, 5, 10, 23, 24], "statement": [6, 8, 9, 18, 28, 29, 35, 36], "statist": 34, "std": 32, "steadi": 15, "steder": 15, "step": [10, 11, 24, 32], "still": [6, 7, 10, 28], "stitch": 15, "stoker": 37, "ston": [30, 31, 32, 35, 36], "stone": [9, 31, 37], "stop": [5, 6, 9, 11, 15, 17, 23], "stopword": 37, "storag": [6, 9, 32], "store": [2, 7, 9, 17, 18, 25, 29, 30, 37], "stori": 15, "storm": 15, "stort": 15, "str": [5, 7, 8, 9], "straightforward": [35, 36], "strang": 15, "strengthen": [6, 37], "stride": 9, "string": [11, 15, 29, 30], "strip": 15, "strong": [11, 15], "strongli": 10, "structur": [2, 9, 11, 17, 18, 29, 32], "student": [1, 25, 26], "stuff": 25, "style": 0, "subfold": 30, "subplot": 4, "subscript": 6, "subselect": 32, "subsequ": 23, "subset": [30, 32, 34, 36], "substr": 5, "subtract": [8, 17], "succesfulli": 25, "success": 24, "suddenli": 15, "suggest": [0, 19, 20, 21], "suitabl": 33, "sum": [5, 30, 32], "summari": [30, 34, 36], "summaris": 32, "summer": 10, "sundai": 15, "super": 15, "support": [3, 8, 9, 30, 32], "suppos": 11, "sure": [1, 4, 11, 25, 26, 27, 28, 37], "surround": [5, 17, 35], "surveil": 25, "surviv": [30, 31, 32, 35, 36], "sutehal": [31, 35], "sw": 37, "swap": [18, 29], "sweat": 11, "switz": 15, "symbol": [6, 15, 17], "syntax": [0, 2, 5, 9, 18, 28, 29, 31, 36, 37], "syntaxerror": [8, 37], "syntaxwarn": 37, "system": [11, 25], "s\u00e5": [0, 15], "t": [2, 4, 5, 6, 7, 8, 9, 11, 15, 16, 25, 32, 37], "tab": [10, 11, 17, 23, 25], "tabl": [6, 10, 18, 32, 35], "tabular": [18, 31, 34], "take": [0, 5, 6, 8, 9, 10, 11, 13, 15, 17, 21, 25], "taken": 11, "tale": 15, "talk": 6, "tap": 23, "task": [10, 15, 17, 24, 31, 35, 36], "taught": 7, "teach": [1, 7, 15, 27], "technic": [25, 31, 36], "technologi": 19, "tediou": 25, "tekstern": 15, "tell": [5, 8, 10, 25, 31, 35], "temperatur": 9, "temperature_001": 9, "temperature_002": 9, "temporari": 6, "tempt": [6, 37], "temptat": [6, 37], "ten": 7, "tendenc": 15, "term": [6, 8, 9, 15, 16, 25], "termin": [23, 28], "terminologi": 16, "terribl": 15, "test": [7, 15], "tester": 15, "tex": 4, "text": [2, 3, 5, 6, 7, 15, 17, 18, 23, 24, 29, 37], "text_end": 15, "text_start": 15, "th": [15, 30, 31, 32, 35, 36], "than": [5, 6, 7, 8, 10, 11, 25, 30, 31, 32, 35, 36, 37], "thank": [1, 27], "thei": [2, 5, 7, 8, 9, 10, 11, 15, 25, 31, 33, 35, 36, 37], "theirs": 37, "them": [5, 6, 8, 9, 10, 11, 12, 17, 23, 24, 25, 26, 31, 32, 36, 37], "themselv": 37, "therefor": [5, 9], "thermomet": 9, "thi": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16, 17, 18, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 35, 36, 37], "thing": [3, 5, 6, 10, 11, 15, 19], "think": [6, 7, 10, 17, 20, 31, 37], "third": [7, 9, 10, 25], "thoma": [15, 31, 35, 36], "thompson": 36, "those": [2, 6, 31, 36, 37], "though": [5, 28, 30, 37], "three": [6, 7, 20, 25, 29, 30, 32], "threshold": 35, "through": [10, 11, 12, 16, 22, 25, 28, 31, 33, 37], "throw": 7, "thu": [5, 6, 8, 9, 11], "thunderstorm": 15, "thursdai": 15, "ti": 9, "ticket": [30, 31, 32, 35, 36], "till": 11, "time": [1, 5, 7, 9, 10, 11, 15, 17, 23, 25, 27, 31, 32], "timothi": [31, 35, 36], "tin": [8, 9], "tini": [6, 37], "tip": [0, 22, 24], "tire": [6, 37], "titan": [31, 32, 33, 35, 36], "titl": [29, 33], "tjekk": 15, "tmp": 37, "to_": 30, "to_excel": 30, "todai": 15, "togeth": [1, 5, 9, 15, 17, 25, 27, 28, 32], "toggl": 20, "too": [6, 11, 30, 37], "took": 11, "tool": [2, 15, 17, 25, 31, 33, 35, 36], "toolbar": [20, 21, 23, 24], "top": [3, 11, 20, 21, 23, 24, 28], "topic": 13, "torborg": 36, "torpor": 15, "tot_sec": 6, "total": [10, 30, 31, 35], "total_second": 6, "tow": 15, "trace": [6, 8, 11], "traceback": [6, 7, 8, 9, 10, 37], "track": 10, "trackpad": 23, "tradit": 7, "train": 30, "travers": 9, "treat": [3, 5, 6, 32], "trigger": 31, "troubl": [19, 25], "true": [5, 6, 15, 17, 30, 31, 32, 35, 37], "true_upper_cas": 15, "truncat": 30, "truth": [5, 17], "try": [6, 7, 8, 10, 11, 15, 25, 27], "tupl": [29, 30, 31, 35], "turk": 15, "turkish": 15, "turn": [11, 24, 36], "tutori": 32, "twice": [8, 15, 24], "two": [1, 2, 3, 5, 7, 8, 9, 11, 15, 17, 23, 24, 25, 27, 29, 30, 31, 32, 35], "txt": [15, 37], "type": [0, 6, 8, 10, 11, 12, 18, 23, 24, 25, 29, 30, 31, 32, 33, 35], "typecast": 7, "typeerror": [6, 7, 8, 9], "typic": [0, 6, 8, 15, 17, 18, 29, 31, 32], "u": [1, 6, 8, 11, 15, 20, 27, 30, 31, 35], "ucph": 17, "unchang": [5, 17], "uncheck": 24, "uncl": 15, "unclear": 37, "uncouth": 15, "undefin": 18, "under": [12, 15, 23, 25, 37], "underneath": 5, "underscor": [6, 15, 37], "understand": [0, 3, 5, 6, 8, 10, 11, 13, 15, 16, 17, 22, 26, 30, 37], "undo": 23, "unexpect": [8, 10, 11, 31], "unfamiliar": 16, "unintend": 31, "uniqu": 18, "univers": [1, 5, 25, 26, 27], "unknown": 30, "unlik": [6, 25], "unlimit": 15, "unnest": [10, 11], "unreason": 7, "unsupport": 7, "unsur": 23, "untermin": 8, "until": [6, 8, 10, 11, 15, 17, 25, 37], "up": [1, 5, 7, 8, 9, 10, 11, 24, 25, 27, 36, 37], "updat": [7, 10, 25, 28, 29], "upload": [23, 25], "upper": [6, 8, 37], "upper_case_word": 15, "uppercas": 15, "upward": 24, "urg": 25, "url": [15, 23], "urllib": 15, "urlopen": 15, "us": [0, 2, 3, 5, 8, 9, 12, 15, 17, 18, 19, 22, 23, 24, 26, 28, 29, 30, 32, 33, 35, 37], "usag": [31, 35], "user": [11, 22, 25], "user_guess": 11, "user_input": 11, "usual": [6, 7, 8, 11, 17, 32], "utf": [15, 37], "util": [23, 25], "uw": 21, "u\u00e6gt": 15, "v": 33, "vagabond": 15, "valid": 35, "valu": [5, 10, 11, 17, 18, 29, 32, 35, 36, 37], "valuabl": 7, "value_count": [32, 33], "valueerror": [7, 37], "vand": 36, "vander": [31, 35, 36], "vari": [5, 8], "variabl": [5, 8, 9, 11, 12, 25, 30, 32, 34], "variat": 2, "varieti": 33, "variou": [8, 11, 24, 29, 33], "ve": [15, 16, 31, 37], "ved": 15, "verbos": 36, "veri": [0, 10, 12, 15, 29, 30, 37], "versatil": [33, 35], "version": [15, 21, 23, 28], "versu": 32, "vertic": 33, "vestrom": 36, "via": 28, "victor": [31, 35, 36], "video": 36, "view": [7, 23, 29, 30], "vil": 15, "villag": 15, "violat": 8, "violent": 15, "vise": 0, "visit": [1, 8, 22, 27], "visualis": 33, "v\u00e6re": 15, "w": [30, 31, 32, 35, 36, 37], "w3school": 15, "wa": [9, 10, 15, 20, 21, 23, 27, 37], "wai": [5, 6, 7, 8, 11, 12, 15, 17, 18, 26, 27, 28, 29, 31, 33, 36], "walk": 25, "wallpap": 37, "wallpaper_charlott": 37, "walsh": [1, 7, 27], "walton": 15, "want": [4, 6, 8, 10, 11, 15, 23, 24, 25, 28, 30, 31, 33, 36, 37], "warn": [0, 31], "watch": 15, "wauw": 11, "we": [1, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 25, 26, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37], "wear": [6, 37], "web": [19, 23], "webpag": 20, "websit": [15, 19, 25], "week": 15, "welcom": [11, 26], "well": [1, 4, 6, 7, 8, 13, 25, 27, 32, 37], "wendi": 2, "were": [6, 10, 11, 15, 25, 37], "whale": 10, "what": [5, 6, 10, 15, 17, 20, 25, 32, 35, 36, 37], "wheadon": 31, "when": [2, 3, 6, 9, 10, 15, 16, 17, 19, 23, 24, 25, 28, 29, 35, 37], "whenev": 16, "where": [0, 6, 7, 8, 9, 10, 11, 15, 17, 18, 23, 24, 25, 28, 29, 30, 31, 35, 36, 37], "wherea": [2, 29, 31, 32, 35], "whether": [2, 5, 17, 22, 24, 25, 29, 30, 31, 33], "which": [3, 5, 6, 7, 8, 9, 10, 11, 12, 15, 17, 24, 25, 28, 29, 30, 31, 33, 35, 37], "while": [5, 6, 8, 9, 15, 17, 23, 24, 25, 29, 31, 33, 36, 37], "white": 15, "who": [6, 25, 37], "whole": [5, 7, 9, 10, 15, 17, 30], "whom": 37, "whose": [1, 15, 17, 27, 30], "why": [5, 6, 7, 9, 15, 31, 37], "wide": [18, 28, 29, 33, 36], "widespread": 15, "widow": 15, "wikipedia": 27, "wil": 7, "william": [30, 31, 32, 35, 36], "wilson": [31, 35, 36], "win": 25, "window": [24, 28], "winter": 10, "wise": 35, "wish": [25, 26], "within": [9, 11, 17, 23, 24, 29, 30, 31, 32], "without": [6, 9, 10, 11, 17, 21, 24, 29, 30, 31, 32, 33], "wollstonecraft": 15, "women_louisa": 37, "won": [6, 37], "wonder": 5, "wonderland_lewi": 37, "word": [6, 8, 10, 15, 30, 37], "work": [1, 4, 5, 6, 7, 11, 12, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 37], "workbook": 37, "workflow": [22, 24], "workshop": 15, "workspac": 22, "world": [7, 8, 17, 33], "worri": [6, 25, 30, 37], "would": [0, 5, 6, 7, 9, 10, 11, 20, 21, 29, 31, 32, 37], "wrap": [6, 24, 27], "wreck": 15, "wretch": 15, "write": [0, 2, 3, 6, 7, 8, 9, 10, 11, 13, 15, 17, 24, 25, 31, 34], "written": [2, 3, 7, 11, 15, 17, 30], "wrong": [8, 11], "www": 15, "x": [5, 6, 9, 17, 25, 33], "x64": 37, "x_column": 33, "xlabel": 33, "xlsx": 30, "y": [5, 6, 9, 15, 33], "y_column": 33, "year": [6, 7], "yellow": 37, "yesterdai": 15, "yet": [6, 16], "yield": 32, "ylabel": 33, "you": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 35, 36, 37], "your": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33], "your_chosen_vari": 37, "your_vari": 7, "yourself": [6, 37], "yourselv": 37, "z": [8, 37], "zero": [5, 7, 8, 9, 10, 11, 17, 24], "zeroth": 9, "\u00e6gte": 15}, "titles": ["Admonition Boxes", "Welcome", "Markdown Files", "Notebooks with MyST Markdown", "Content with notebooks", "Data Types", "Variables and Assignment", "Data Types and Type Conversion", "Built-in Functions and Help", "Lists", "For Loops", "Conditionals", "Part 1", "Part 2", "2024 Open Data Science", "RegEx and Frankenstein", "Learn All the New Words", "Dictionary for Absolute Beginners", "Dictionary for Pandas", "Get Help and Find Documentation", "Interact With This Book", "How to Interact With This Book", "Get Started with JupyterLab", "Open and Navigate JupyterLab", "Code in JupyterLab", "Install & Run Python", "Sign Up for a Course", "Welcome", "Getting Started with Pandas", "Pandas DataFrame", "Read and Write Tabular Data", "Subsets", "Summary Statistics", "Basic Plotting in Pandas", "Getting Started with Data Analysis", "Out: Subsets", "Out: loc and iloc", "Out: Variables"], "titleterms": {"1": [6, 7, 8, 9, 10, 11, 12, 23, 25], "2": [6, 7, 8, 9, 10, 11, 13, 23, 25], "2024": 14, "3": [6, 7, 8, 9, 10, 11, 25], "4": [6, 7, 8, 9, 10, 11], "5": [6, 7, 9, 10], "6": [7, 9, 10], "7": [9, 10], "8": 9, "A": [11, 15, 30, 33, 35], "For": [10, 23], "The": [5, 8, 11, 33], "To": 37, "With": [20, 21], "about": [26, 36], "abov": 11, "absolut": 17, "accumul": 10, "ad": 7, "add": [3, 25], "addit": 11, "admonit": 0, "aggreg": 32, "all": 16, "along": 15, "alt": 0, "ambigu": 31, "an": [0, 3, 11], "analys": 11, "analysi": 34, "andetst": 0, "anoth": 25, "append": [9, 17, 29], "appl": [23, 25], "ar": [6, 9, 11, 26, 31], "argument": [8, 17], "aria": [1, 20, 21, 23, 25, 27], "arithmet": 17, "assign": [6, 7, 17, 37], "attend": 26, "attribut": [1, 18, 27, 29], "auto": 24, "automat": 7, "avoid": 31, "b": 15, "back": 9, "bar": [20, 33], "base": [29, 31, 35], "basic": 33, "befor": [6, 26], "beginn": 17, "between": [6, 9], "beyond": 9, "blank": [9, 10, 11], "block": [4, 11], "book": [0, 20, 21], "boolean": [5, 17], "both": [23, 25], "box": 0, "bracket": [15, 24, 35], "built": [5, 8], "calcul": 6, "call": [31, 35], "can": [5, 6, 7], "case": 6, "categor": 32, "categori": 32, "cell": [3, 6, 24], "certain": 8, "chang": [7, 9], "charact": [8, 9], "chart": 33, "check": 25, "choos": [6, 7, 37], "citat": 2, "class": [0, 1, 6, 7, 8, 9, 10, 11, 20, 21, 23, 25, 27, 29, 30], "classifi": 10, "click": [20, 21, 25], "close": 24, "cloud": 21, "code": [4, 5, 11, 20, 21, 24], "colab": 25, "column": [29, 30, 31, 35, 36], "combin": [31, 36], "command": 24, "comment": [8, 17], "common": [0, 1, 23, 27], "comparison": 5, "complex": 31, "compound": 11, "concaten": [5, 17], "conclus": 33, "condit": [11, 17, 31, 35], "contain": 9, "content": [4, 12, 13, 16, 22, 34], "control": [7, 11], "convent": 6, "convers": 7, "copi": 9, "correctli": 25, "count": 32, "cours": [26, 27], "creat": [3, 6, 24, 29, 30, 31, 32, 35, 36], "creativ": [1, 27], "csv": [18, 30, 31, 32, 35, 36], "cumul": 10, "curli": 15, "current": 30, "customis": 33, "data": [5, 7, 9, 14, 17, 29, 30, 32, 34], "datafram": [18, 29, 30, 31, 32, 35, 36], "deal": 7, "default": 8, "delet": [9, 24], "den": 0, "dereft": 0, "descript": 32, "develop": 17, "dice": 11, "dictionari": [17, 18, 29], "did": 25, "differ": [7, 8, 9], "direct": 2, "directori": [23, 30], "displai": [6, 37], "divis": 7, "do": 7, "document": [8, 17, 19], "doe": 11, "doubl": 5, "doubt": 26, "download": [20, 21, 25, 30], "dtype": 30, "edit": 24, "elif": 11, "els": 11, "empti": 9, "end": 9, "environ": 17, "equal": 5, "er": 0, "erda": 25, "error": [8, 10], "everi": 8, "exactli": 31, "exampl": [0, 3, 11, 33], "excel": 30, "exclus": 31, "execut": [10, 11], "exercis": [6, 7, 8, 9, 10, 11, 29, 30], "exist": 29, "expand": [20, 21], "expon": 5, "express": [31, 35], "fa": [1, 6, 7, 8, 9, 10, 11, 20, 21, 23, 25, 27, 29, 30], "fab": [1, 20, 21, 23, 25, 27], "file": [2, 15, 23, 30, 31, 32, 35, 36, 37], "fill": [9, 10, 11], "filter": [30, 31, 35], "find": [6, 19], "first": 29, "float": [5, 7, 17], "fra": 0, "frankenstein": 15, "freeli": 7, "from": [9, 28, 30, 31, 32, 35, 36, 37], "full": [20, 21], "function": [5, 8, 11, 17], "fundet": 0, "f\u00f8lger": 0, "f\u00f8rst": 0, "game": 11, "geeksforgeek": 19, "get": [6, 19, 22, 25, 28, 30, 34], "github": [20, 21], "good": 37, "googl": 25, "group": 32, "groupbi": 32, "guess": 11, "handl": 31, "happen": 8, "have": [5, 7, 8], "head": 30, "help": [8, 19], "her": 0, "herund": 0, "hidden": [1, 20, 21, 23, 25, 27], "how": [5, 9, 10, 21, 25], "i": [0, 1, 2, 6, 7, 8, 9, 10, 11, 20, 21, 23, 25, 27, 29, 30], "id": 17, "identifi": 10, "iloc": [31, 36], "immut": [9, 17], "impact": 11, "import": [28, 29, 30, 31, 32, 35, 36], "inclus": 31, "indent": 17, "index": [5, 6, 9, 17, 18, 31, 35], "infinit": 11, "info": 30, "inform": [30, 36], "input": 11, "insid": [5, 11], "instal": [25, 28], "integ": [5, 6, 7, 17], "integr": 17, "interact": [20, 21], "introduc": 31, "isna": 30, "issu": [20, 21], "item": [9, 10], "jupyt": [0, 20, 21, 37], "jupyterlab": [22, 23, 24, 25], "kei": [5, 6, 7, 8, 9, 10, 11, 29, 30, 31, 32, 33, 35], "kernel": 24, "keyboard": 24, "kind": 7, "kode": 0, "larg": 9, "last": 8, "learn": [2, 5, 6, 7, 8, 9, 10, 11, 16], "length": [6, 7], "librari": 17, "limit": [6, 37], "list": [9, 15, 37], "loc": [31, 36], "look": 25, "loop": [10, 11, 17], "mac": 25, "maco": [23, 25], "mai": 9, "make": [20, 21], "manag": 24, "mark": [5, 15], "markdown": [0, 2, 3, 4], "mathemat": 5, "max": 8, "meaning": 6, "media": 11, "memori": 30, "messag": 8, "metacharact": 15, "metadata": 3, "method": [5, 9, 25], "min": 8, "miss": 31, "mix": 7, "mode": 24, "modulenotfounderror": 28, "modulu": 5, "more": [2, 15, 36], "move": 24, "multipl": [5, 10, 31, 35], "must": 6, "mutabl": [9, 17], "my": 0, "myst": [2, 3, 4], "name": [6, 10, 37], "nan": 18, "navig": 23, "new": [16, 29], "note": [11, 30, 33, 35], "notebook": [3, 4, 20, 21], "notic": [9, 11], "notna": 30, "number": [7, 11, 32], "object": [5, 6, 7, 8, 9, 10, 11], "off": [6, 37], "offici": [19, 25], "often": 11, "onc": 11, "onli": [7, 8], "open": [14, 20, 21, 23, 25], "oper": [5, 7, 17, 31, 32], "option": 24, "order": 11, "our": [27, 29], "out": [35, 36, 37], "output": [4, 20, 21], "overwrit": 9, "own": 29, "panda": [18, 19, 28, 29, 30, 31, 32, 33, 35, 36], "paramet": 33, "part": [12, 13], "path": 25, "pd": [18, 29], "pdf": [20, 21], "pencil": [6, 7, 8, 9, 10, 11, 29, 30], "persist": 6, "pie": 33, "pip": 25, "pipe": 15, "plai": 20, "plot": 33, "point": [5, 6, 7, 8, 9, 10, 11, 29, 30, 31, 32, 35], "posit": 31, "powershel": 25, "predict": 6, "print": [6, 11, 37], "problem": 11, "program": 11, "pypi": 28, "python": [6, 19, 25], "question": 15, "quickli": 3, "quotat": 5, "rang": 10, "rather": 25, "re": 37, "read": [15, 30], "recap": 7, "record": 32, "regex": 15, "renam": 29, "rendered": 0, "replac": 9, "represent": 29, "restart": 24, "return": 8, "revers": 10, "rocket": 21, "role": 2, "round": 8, "row": [31, 35, 36], "run": [24, 25], "runtim": 8, "sampl": 2, "scatter": 33, "scienc": 14, "screen": [20, 21], "script": 11, "select": [31, 35, 36], "sensit": 6, "seri": [18, 29, 31, 35], "shape": 30, "shortcut": 24, "show": [20, 21], "sign": [5, 26], "simplest": 25, "singl": 5, "slice": [5, 6, 9, 17, 31], "social": 11, "solid": [6, 7, 8, 9, 10, 11, 29, 30], "solut": [6, 7, 8, 9, 10, 11, 29, 30], "some": 8, "someth": [7, 8], "sort": 9, "specif": [31, 35], "specifi": 11, "spot": 8, "squar": [15, 35], "start": [22, 25, 28, 34], "statement": [10, 11, 17], "statist": 32, "step": [9, 23, 25], "store": 6, "string": [5, 6, 7, 8, 9, 10, 17], "strive": 37, "structur": 10, "student": 7, "subset": [18, 31, 35], "substr": 6, "sum": 10, "summari": [31, 32], "swap": 6, "syntax": [8, 10, 11, 17, 33], "system": 23, "tabl": [5, 9, 29], "tabular": 30, "tail": 30, "termin": 25, "test": [0, 11], "thei": 6, "them": 7, "thi": [0, 11, 20, 21], "through": 9, "til": 0, "ting": 0, "tip": 23, "titan": 30, "titl": 0, "todo": 0, "trace": 10, "transpos": [18, 29], "true": [1, 11, 20, 21, 23, 25, 27], "turn": 37, "type": [5, 7, 9, 17], "up": 26, "upgrad": 28, "us": [6, 7, 10, 11, 25, 31, 36], "usag": [30, 33], "user": 23, "v": [24, 31, 37], "valu": [6, 7, 8, 9, 30, 31], "variabl": [6, 7, 10, 17, 37], "version": [0, 25], "w": 15, "w3school": 19, "wa": 25, "wai": 25, "welcom": [1, 27], "well": 15, "what": [2, 7, 8, 9, 11, 31], "when": [7, 8, 11, 31, 36], "whether": 11, "which": 26, "while": 11, "why": [8, 29], "wider": 37, "window": [23, 25], "word": 16, "work": [8, 9, 10, 30], "workspac": 20, "would": 25, "write": 30, "yaml": 3, "you": [5, 6, 25, 26], "your": [25, 37], "z": 15}}) \ No newline at end of file +Search.setIndex({"alltitles": {"2024 Open Data Science": [[14, null]], " Download Jupyter Notebook": [[21, "download-jupyter-notebook"]], " Download PDF": [[21, "download-pdf"]], " Open Jupyter Notebook in the Cloud": [[21, "open-jupyter-notebook-in-the-cloud"]], " Exercise 4: The number guessing game": [[11, "exercise-4-the-number-guessing-game"]], " Exercise": [[29, "exercise"], [30, "exercise"]], " Exercise 1: Choosing a name": [[6, "exercise-1-choosing-a-name"]], " Exercise 1: Classifying errors": [[10, "exercise-1-classifying-errors"]], " Exercise 1: Fill in the blanks": [[9, "exercise-1-fill-in-the-blanks"]], " Exercise 1: Spot the difference": [[8, "exercise-1-spot-the-difference"]], " Exercise 1: What does this program print?": [[11, "exercise-1-what-does-this-program-print"]], " Exercise 1: What kind of data type?": [[7, "exercise-1-what-kind-of-data-type"]], " Exercise 2: Automatic type conversion": [[7, "exercise-2-automatic-type-conversion"]], " Exercise 2: Fill in the blanks": [[11, "exercise-2-fill-in-the-blanks"]], " Exercise 2: How large is a slice?": [[9, "exercise-2-how-large-is-a-slice"]], " Exercise 2: Swapping values": [[6, "exercise-2-swapping-values"]], " Exercise 2: Tracing execution": [[10, "exercise-2-tracing-execution"]], " Exercise 2: What happens when?": [[8, "exercise-2-what-happens-when"]], " Exercise 3: Choose a type": [[7, "exercise-3-choose-a-type"]], " Exercise 3: Predicting values": [[6, "exercise-3-predicting-values"]], " Exercise 3: Reversing a string": [[10, "exercise-3-reversing-a-string"]], " Exercise 3: Using the input() function": [[11, "exercise-3-using-the-input-function"]], " Exercise 3: Why not?": [[8, "exercise-3-why-not"]], " Exercise 3: Working with the end": [[9, "exercise-3-working-with-the-end"]], " Exercise 4: Can you slice integers?": [[6, "exercise-4-can-you-slice-integers"]], " Exercise 4: Fill in the blanks": [[10, "exercise-4-fill-in-the-blanks"]], " Exercise 4: Last character of a string": [[8, "exercise-4-last-character-of-a-string"]], " Exercise 4: Stepping through a list": [[9, "exercise-4-stepping-through-a-list"]], " Exercise 4: Strings to numbers": [[7, "exercise-4-strings-to-numbers"]], " Exercise 5: Adding floats and strings": [[7, "exercise-5-adding-floats-and-strings"]], " Exercise 5: Cumulative sum": [[10, "exercise-5-cumulative-sum"]], " Exercise 5: Slicing": [[6, "exercise-5-slicing"], [9, "exercise-5-slicing"]], " Exercise 6: Identifying variable name errors": [[10, "exercise-6-identifying-variable-name-errors"]], " Exercise 6: Number of students": [[7, "exercise-6-number-of-students"]], " Exercise 7: Copying (or not)": [[9, "exercise-7-copying-or-not"]], " Exercise 7: Identifying item errors": [[10, "exercise-7-identifying-item-errors"]], " Exercise 8: From strings to lists and back": [[9, "exercise-8-from-strings-to-lists-and-back"]], "Exercises 6: Sort and sorted": [[9, "exercises-6-sort-and-sorted"]], " Common tips for both macOS and Windows users": [[23, "common-tips-for-both-macos-and-windows-users"]], " JupyterLab - both Mac and Windows": [[25, "jupyterlab-both-mac-and-windows"]], " For macOS users": [[23, "for-macos-users"]], " Method 1: Mac": [[25, "method-1-mac"]], " Attribution": [[1, "attribution"], [27, "attribution"]], " Open Issue on GitHub": [[21, "open-issue-on-github"]], " Open issue on GitHub": [[20, "open-issue-on-github"]], " For Windows users": [[23, "for-windows-users"]], " Method 1: Windows": [[25, "method-1-windows"]], " Expand workspace": [[20, "expand-workspace"]], " Download Jupyter Notebook": [[20, "download-jupyter-notebook"]], " Download PDF": [[20, "download-pdf"]], " Make Full Screen": [[21, "make-full-screen"]], " Make full screen": [[20, "make-full-screen"]], " Click to show output/code": [[20, "click-to-show-output-code"]], "A note on head() and tail()": [[30, null]], "A note on plotting": [[33, null]], "A note on the input() function": [[11, null]], "Admonition Boxes": [[0, null]], "Aggregating statistics": [[32, "aggregating-statistics"]], "Aggregating statistics grouped by category": [[32, "aggregating-statistics-grouped-by-category"]], "Alt herunder er tests fra ting fundet andetsteds": [[0, "alt-herunder-er-tests-fra-ting-fundet-andetsteds"]], "An example cell": [[3, "an-example-cell"]], "Appending": [[17, "appending"]], "Appending Series": [[29, "appending-series"]], "Appending to lists": [[9, "appending-to-lists"]], "Are you in doubt about which course to sign up for?": [[26, "are-you-in-doubt-about-which-course-to-sign-up-for"]], "Argument": [[17, "argument"]], "Arithmetic": [[17, "arithmetic"]], "Assignment": [[17, "assignment"]], "Attributes": [[18, "attributes"], [29, "attributes"]], "Auto-close brackets": [[24, "auto-close-brackets"]], "Avoid ambiguous operations": [[31, null]], "Bar plot": [[33, "bar-plot"]], "Basic Visualisations in Pandas": [[33, null]], "Basic usage": [[33, "basic-usage"]], "Before you attend a course": [[26, "before-you-attend-a-course"]], "Boolean": [[17, "boolean"]], "Booleans": [[5, "booleans"]], "Built-in Functions and Help": [[8, null]], "Built-in data types": [[5, "built-in-data-types"]], "Built-in functions": [[8, "built-in-functions"]], "CSV": [[18, "csv"]], "Calling multiple Series": [[31, "calling-multiple-series"]], "Categorical data": [[32, null]], "Character strings are immutable": [[9, "character-strings-are-immutable"]], "Check your version of Python": [[25, "check-your-version-of-python"]], "Citations": [[2, "citations"]], "Click to Show Output/Code": [[21, "click-to-show-output-code"]], "Code blocks and outputs": [[4, "code-blocks-and-outputs"]], "Code in JupyterLab": [[24, null]], "Combining loc and iloc": [[31, "combining-loc-and-iloc"]], "Command mode vs. edit mode": [[24, "command-mode-vs-edit-mode"]], "Comment": [[17, "comment"]], "Comments and documentation": [[8, "comments-and-documentation"]], "Common Classes for Admonitions in Jupyter Book": [[0, "common-classes-for-admonitions-in-jupyter-book"]], "Comparisons": [[5, "comparisons"]], "Compound statements": [[11, "compound-statements"]], "Concatenation": [[5, "concatenation"], [17, "concatenation"]], "Conditionals": [[11, null], [17, "conditionals"]], "Conditionals are often used inside loops": [[11, "conditionals-are-often-used-inside-loops"]], "Conditions are tested once, in order": [[11, "conditions-are-tested-once-in-order"]], "Content": [[12, "content"], [13, "content"], [16, "content"], [22, "content"], [34, "content"]], "Content with notebooks": [[4, null]], "Count number of records by category": [[32, "count-number-of-records-by-category"]], "Create a notebook with MyST Markdown": [[3, "create-a-notebook-with-myst-markdown"]], "Creating a DataFrame from a CSV file": [[30, "creating-a-dataframe-from-a-csv-file"], [31, "creating-a-dataframe-from-a-csv-file"], [32, "creating-a-dataframe-from-a-csv-file"]], "Creating a new column based on existing data": [[29, "creating-a-new-column-based-on-existing-data"]], "Creating and deleting cells": [[24, "creating-and-deleting-cells"]], "Creating our first DataFrame": [[29, "creating-our-first-dataframe"]], "Creating our own Series": [[29, "creating-our-own-series"]], "Curly brackets": [[15, "curly-brackets"]], "Current working directory": [[30, "current-working-directory"]], "Customising plots": [[33, "customising-plots"]], "Data Type": [[17, "data-type"]], "Data Types": [[5, null]], "Data Types and Type Conversion": [[7, null]], "Data types control operations": [[7, "data-types-control-operations"]], "DataFrame": [[18, "dataframe"]], "DataFrames and dictionaries": [[29, "dataframes-and-dictionaries"]], "Dealing with different data types": [[7, "dealing-with-different-data-types"]], "Deleting list items": [[9, "deleting-list-items"]], "Descriptive statistics": [[32, null]], "Dictionary for Absolute Beginners": [[17, null]], "Dictionary for Pandas": [[18, null]], "Did you not click add to PATH?": [[25, null]], "Documentation": [[17, "documentation"]], "Download the Titanic data": [[30, "download-the-titanic-data"], [34, "download-the-titanic-data"]], "Empty lists": [[9, "empty-lists"]], "Error messages": [[8, "error-messages"]], "Every function returns something": [[8, "every-function-returns-something"]], "Example of an Admonition in Jupyter Book": [[0, "example-of-an-admonition-in-jupyter-book"]], "Example: Analysing social media impact": [[11, "example-analysing-social-media-impact"]], "Examples": [[33, "examples"]], "Exercises": [[6, "exercises"], [7, "exercises"], [8, "exercises"], [9, "exercises"], [10, "exercises"], [11, "exercises"]], "Exponents": [[5, "exponents"]], "Filtering on column value": [[30, "filtering-on-column-value"]], "Filtering rows based on conditional expressions": [[31, "filtering-rows-based-on-conditional-expressions"]], "Filtering specific rows with .loc[]": [[31, "filtering-specific-rows-with-loc"]], "Find the length of a string": [[6, "find-the-length-of-a-string"]], "Float": [[17, "float"]], "For Loops": [[10, null]], "For loop structure": [[10, "for-loop-structure"]], "For loop syntax": [[10, "for-loop-syntax"]], "Function": [[17, "function"]], "Functions have default values for some arguments": [[8, "functions-have-default-values-for-some-arguments"]], "Functions only work for certain arguments": [[8, "functions-only-work-for-certain-arguments"]], "GeeksforGeeks": [[19, "geeksforgeeks"]], "Get Help and Find Documentation": [[19, null]], "Get Started with JupyterLab": [[22, null]], "Getting Started with Data Analysis": [[34, null]], "Getting Started with Pandas": [[28, null]], "Getting information on the DataFrame": [[30, "getting-information-on-the-dataframe"]], "Groupby operations": [[32, null]], "Handling missing values with .loc[] and .iloc[]": [[31, "handling-missing-values-with-loc-and-iloc"]], "Her f\u00f8lger f\u00f8rst markdown-kode til admonition boxes, derefter den renderede version": [[0, "her-folger-forst-markdown-kode-til-admonition-boxes-derefter-den-renderede-version"]], "How can you have quotation marks inside a string?": [[5, null]], "How for loops work": [[10, "how-for-loops-work"]], "How to Check Your Python Version on Windows": [[25, "how-to-check-your-python-version-on-windows"]], "How to Check Your Python Version on a Mac": [[25, "how-to-check-your-python-version-on-a-mac"]], "How to Install Python on Windows": [[25, "how-to-install-python-on-windows"]], "How to Install Python on macOS": [[25, "how-to-install-python-on-macos"]], "How to Interact With This Book": [[21, null]], "How to open Windows PowerShell": [[25, null]], "How to open the Terminal": [[25, null]], "IDE (Integrated Development Environment)": [[17, "ide-integrated-development-environment"]], "Immutable": [[17, "immutable"]], "Import Pandas": [[29, "import-pandas"], [30, "import-pandas"], [31, "import-pandas"], [32, "import-pandas"]], "Importing Pandas": [[28, "importing-pandas"]], "Inclusive vs. Exclusive Slicing": [[31, "inclusive-vs-exclusive-slicing"]], "Indentation": [[17, "indentation"]], "Index": [[5, "index"], [17, "index"], [18, "index"]], "Indexing": [[6, "indexing"]], "Indexing beyond the end": [[9, "indexing-beyond-the-end"]], "Indexing lists": [[9, "indexing-lists"]], "Indexing, slicing, and length": [[6, "indexing-slicing-and-length"]], "Infinite loops": [[11, "infinite-loops"]], "Install & Run Python": [[25, null]], "Install Python on Mac": [[25, "install-python-on-mac"]], "Install Python on Windows": [[25, "install-python-on-windows"]], "Installing (or upgrading) Pandas from PyPI": [[28, "installing-or-upgrading-pandas-from-pypi"]], "Integer": [[17, "integer"]], "Integers & floats": [[5, "integers-floats"]], "Integers and floats can be mixed freely in operations": [[7, "integers-and-floats-can-be-mixed-freely-in-operations"]], "Interact With This Book": [[20, null]], "Introducing .loc[] and .iloc[]": [[31, "introducing-loc-and-iloc"]], "Key parameters": [[33, "key-parameters"]], "Key points": [[5, "key-points"], [6, "key-points"], [7, "key-points"], [8, "key-points"], [9, "key-points"], [10, "key-points"], [11, "key-points"], [29, "key-points"], [30, "key-points"], [31, "key-points"], [32, "key-points"], [33, "key-points"]], "Keyboard shortcut for restarting kernel": [[24, "keyboard-shortcut-for-restarting-kernel"]], "Learn All the New Words": [[16, null]], "Learn more": [[2, "learn-more"]], "Learning Objectives": [[5, null], [6, null], [7, null], [8, null], [9, null], [10, null], [11, null], [29, null], [30, null], [31, null], [32, null], [33, null]], "Library": [[17, "library"]], "Lists": [[9, null]], "Lists are mutable": [[9, "lists-are-mutable"]], "Lists may contain items of different data types": [[9, "lists-may-contain-items-of-different-data-types"]], "Looking for the simplest way to get started?": [[25, null]], "Loop": [[17, "loop"]], "Managing kernels": [[24, "managing-kernels"]], "Markdown + notebooks": [[4, "markdown-notebooks"]], "Markdown Files": [[2, null]], "Mathematical operations": [[5, "mathematical-operations"]], "Memory usage": [[30, null]], "Metacharacters": [[15, "metacharacters"]], "Method 1: Installing Python and JupyterLab": [[25, "method-1-installing-python-and-jupyterlab"]], "Method 2: Google Colab": [[25, "method-2-google-colab"]], "Method 3: ERDA": [[25, "method-3-erda"]], "ModuleNotFoundError": [[28, null]], "Modulus": [[5, "modulus"]], "More metacharacters, as well as pipes, lists and question marks": [[15, "more-metacharacters-as-well-as-pipes-lists-and-question-marks"]], "Moving cells": [[24, "moving-cells"]], "Multiple statements in a for loop": [[10, "multiple-statements-in-a-for-loop"]], "Multiplication": [[5, "multiplication"]], "Mutable": [[17, "mutable"]], "My title": [[0, null], [0, null], [0, null]], "MyST markdown": [[4, "myst-markdown"]], "NaN": [[18, "nan"]], "Naming Conventions": [[6, null]], "Naming loop variables": [[10, "naming-loop-variables"]], "Notebooks with MyST Markdown": [[3, null]], "Notice": [[11, null]], "Notice the difference between overwriting and changing values": [[9, null]], "Off-limits names": [[6, "off-limits-names"]], "Official Pandas documentation": [[19, "official-pandas-documentation"]], "Official Python Documentation": [[19, "official-python-documentation"]], "Open and Navigate JupyterLab": [[23, null]], "Operator": [[17, "operator"]], "Our courses": [[27, "our-courses"]], "Pandas DataFrame": [[29, null]], "Pandas data table representation": [[29, "pandas-data-table-representation"]], "Part 1": [[12, null]], "Part 2": [[13, null]], "Pie chart": [[33, "pie-chart"]], "Python is case-sensitive": [[6, "python-is-case-sensitive"]], "Quickly add YAML metadata for MyST Notebooks": [[3, "quickly-add-yaml-metadata-for-myst-notebooks"]], "Read and Write Tabular Data": [[30, null]], "Read files": [[15, "read-files"]], "Reading and writing Excel files": [[30, "reading-and-writing-excel-files"]], "Recap on Data Types": [[7, null]], "Recap on division types": [[7, null]], "RegEx and Frankenstein": [[15, null]], "Renaming columns": [[29, "renaming-columns"]], "Replacing list items": [[9, "replacing-list-items"]], "Restart kernel options": [[24, "restart-kernel-options"]], "Running code cells": [[24, "running-code-cells"]], "Runtime errors": [[8, "runtime-errors"]], "Sample Roles and Directives": [[2, "sample-roles-and-directives"]], "Scatter plot": [[33, "scatter-plot"]], "Selecting rows and columns": [[31, "selecting-rows-and-columns"]], "Selecting specific columns": [[31, "selecting-specific-columns"]], "Series": [[18, "series"], [29, "series"]], "Sign Up for a Course": [[26, null]], "Single equals sign = and a double equals sign ==": [[5, null]], "Slice": [[5, "slice"], [17, "slice"]], "Slicing lists": [[9, "slicing-lists"]], "Solution": [[6, null], [6, null], [6, null], [6, null], [7, null], [7, null], [7, null], [7, null], [7, null], [7, null], [8, null], [8, null], [8, null], [9, null], [9, null], [9, null], [9, null], [9, null], [9, null], [9, null], [9, null], [10, null], [10, null], [10, null], [10, null], [10, null], [10, null], [10, null], [10, null], [10, null], [10, null], [11, null], [11, null], [11, null], [29, null], [30, null]], "Square brackets [A-Z]": [[15, "square-brackets-a-z"]], "Statement": [[17, "statement"]], "Step 1: Download the Official Installer": [[25, "step-1-download-the-official-installer"]], "Step 1: Open JupyterLab": [[23, "step-1-open-jupyterlab"], [23, "id1"]], "Step 2: Navigate the File/Directory System": [[23, "step-2-navigate-the-file-directory-system"], [23, "id2"]], "Step 2: Run the Installer": [[25, "step-2-run-the-installer"]], "String": [[17, "string"]], "String methods": [[5, "string-methods"]], "Strings": [[5, "strings"]], "Strings have a length (but numbers do not)": [[7, "strings-have-a-length-but-numbers-do-not"]], "Subset": [[18, "subset"]], "Subsets": [[31, null]], "Summary Statistics": [[32, null]], "Syntax": [[17, "syntax"]], "Syntax errors": [[8, "syntax-errors"]], "Table of Boolean Operations": [[5, null]], "Table of Comparison Operations": [[5, null]], "Table of List Methods": [[9, null]], "Table of Mathematical Operations": [[5, null]], "The .plot() syntax": [[33, "the-plot-syntax"]], "The help() function": [[8, "the-help-function"]], "The type() function": [[5, "the-type-function"]], "The while syntax": [[11, "the-while-syntax"]], "This is a title": [[0, null], [0, null]], "Todo": [[0, "id1"]], "Transpose": [[18, "transpose"]], "Transposing a DataFrame": [[29, "transposing-a-dataframe"]], "Use a slice to get a substring": [[6, "use-a-slice-to-get-a-substring"]], "Use else to execute a block of code when an if condition is not true": [[11, "use-else-to-execute-a-block-of-code-when-an-if-condition-is-not-true"]], "Use meaningful variable names": [[6, "use-meaningful-variable-names"]], "Use print() to display values": [[6, "use-print-to-display-values"]], "Use variables to store values": [[6, "use-variables-to-store-values"]], "Using .iloc[] for positional indexing": [[31, "using-iloc-for-positional-indexing"]], "Using .loc[] and .iloc[] for complex conditions": [[31, "using-loc-and-iloc-for-complex-conditions"]], "Using accumulator variables": [[10, "using-accumulator-variables"]], "Using range with the for loop": [[10, "using-range-with-the-for-loop"]], "Using the + and * operators on strings": [[7, "using-the-and-operators-on-strings"]], "Variable": [[17, "variable"]], "Variable names": [[6, "variable-names"]], "Variables Persist Between Cells": [[6, null]], "Variables and Assignment": [[6, null]], "Variables in calculations": [[6, "variables-in-calculations"]], "Variables must be created before they are used": [[6, "variables-must-be-created-before-they-are-used"]], "Variables only change value when something is assigned to them": [[7, "variables-only-change-value-when-something-is-assigned-to-them"]], "W3Schools": [[19, "w3schools"]], "Was pip not installed correctly?": [[25, null]], "Welcome": [[1, null], [27, null]], "What are lists?": [[9, "what-are-lists"]], "What exactly are loc and iloc?": [[31, null]], "What is MyST?": [[2, "what-is-myst"]], "What is the problem with the script above?": [[11, null]], "When using loc/iloc": [[31, null]], "While loops": [[11, "while-loops"]], "Why pandas as pd?": [[29, null]], "Would you rather use another method?": [[25, null]], "dtypes": [[30, "dtypes"]], "elif specify additional tests": [[11, "elif-specify-additional-tests"]], "head()": [[30, "head"]], "if statements control whether or not a block of code is executed": [[11, "if-statements-control-whether-or-not-a-block-of-code-is-executed"]], "info()": [[30, "info"]], "max(), min(), and round()": [[8, "max-min-and-round"]], "notna() and isna()": [[30, "notna-and-isna"]], "pd": [[18, "pd"]], "shape": [[30, "shape"]], "tail()": [[30, "tail"]], "w+ along with \\b": [[15, "w-along-with-b"]]}, "docnames": ["_to_be_deleted_later/admonition_boxes", "_to_be_deleted_later/intro_old", "_to_be_deleted_later/markdown", "_to_be_deleted_later/markdown-notebooks", "_to_be_deleted_later/notebooks", "docs/101/01_data_types", "docs/101/02_variables_and_assignment", "docs/101/03_type_conversion", "docs/101/04_built-in_functions", "docs/101/05_lists", "docs/101/06_for_loops", "docs/101/07_conditionals", "docs/101/part1", "docs/101/part2", "docs/_test/2024_ods", "docs/_test/regex_and_frankenstein", "docs/howto/dictionaries", "docs/howto/dictionary_101", "docs/howto/dictionary_pandas", "docs/howto/help_and_documentation", "docs/howto/interact", "docs/howto/interact_original", "docs/howto/jupyterlab", "docs/howto/jupyterlab_1", "docs/howto/jupyterlab_2", "docs/howto/setup", "docs/howto/sign_up", "docs/intro", "docs/pandas/00_pandas_start", "docs/pandas/01_pandas_dataframe", "docs/pandas/02_pandas_tabular_data", "docs/pandas/03_pandas_subsets", "docs/pandas/04_pandas_summary_statistics", "docs/pandas/05_pandas_plot", "docs/pandas/getting_started"], "envversion": {"sphinx": 62, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.todo": 2, "sphinxcontrib.bibtex": 9}, "filenames": ["_to_be_deleted_later/admonition_boxes.ipynb", "_to_be_deleted_later/intro_old.md", "_to_be_deleted_later/markdown.md", "_to_be_deleted_later/markdown-notebooks.md", "_to_be_deleted_later/notebooks.ipynb", "docs/101/01_data_types.ipynb", "docs/101/02_variables_and_assignment.ipynb", "docs/101/03_type_conversion.ipynb", "docs/101/04_built-in_functions.ipynb", "docs/101/05_lists.ipynb", "docs/101/06_for_loops.ipynb", "docs/101/07_conditionals.ipynb", "docs/101/part1.ipynb", "docs/101/part2.ipynb", "docs/_test/2024_ods.ipynb", "docs/_test/regex_and_frankenstein.ipynb", "docs/howto/dictionaries.ipynb", "docs/howto/dictionary_101.ipynb", "docs/howto/dictionary_pandas.ipynb", "docs/howto/help_and_documentation.ipynb", "docs/howto/interact.ipynb", "docs/howto/interact_original.ipynb", "docs/howto/jupyterlab.ipynb", "docs/howto/jupyterlab_1.ipynb", "docs/howto/jupyterlab_2.ipynb", "docs/howto/setup.ipynb", "docs/howto/sign_up.ipynb", "docs/intro.ipynb", "docs/pandas/00_pandas_start.ipynb", "docs/pandas/01_pandas_dataframe.ipynb", "docs/pandas/02_pandas_tabular_data.ipynb", "docs/pandas/03_pandas_subsets.ipynb", "docs/pandas/04_pandas_summary_statistics.ipynb", "docs/pandas/05_pandas_plot.ipynb", "docs/pandas/getting_started.ipynb"], "indexentries": {}, "objects": {}, "objnames": {}, "objtypes": {}, "terms": {"": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 15, 18, 23, 25, 27, 28, 29, 30, 31, 32, 34], "0": [4, 5, 6, 7, 8, 9, 10, 11, 15, 17, 24, 29, 30, 31, 32], "00": 30, "0000": [30, 31, 32], "000000": 32, "028662": 32, "0500": [30, 31, 32], "07": 11, "0750": 31, "0x7f70d9914770": 4, "1": [4, 5, 13, 15, 17, 18, 26, 29, 30, 31, 32, 34], "10": [4, 5, 7, 8, 10, 11, 23, 30, 31], "100": [4, 8, 11, 15], "1000": [30, 31, 32], "106": 32, "11": [7, 8, 9, 23, 30, 31], "111369": [30, 31, 32], "112053": [30, 31, 32], "113": 31, "113572": 31, "113783": 31, "113803": [30, 31, 32], "11751": 31, "11767": 31, "118810": 32, "12": [7, 8, 9, 10, 11, 17, 25, 30, 31, 32], "120": [10, 11, 23], "123": 6, "125": 10, "1250": 31, "125000": 32, "125798": 32, "13": [5, 10, 30, 31, 32], "14": [7, 31, 32], "14159": 7, "1415926": 5, "147314": 32, "14879": 30, "15": [11, 31], "150": 11, "155": 10, "1583": 31, "159236": 32, "16": [5, 9, 31, 32], "17": [5, 9], "17463": 31, "17599": [30, 31, 32], "1764": [20, 21], "177": 30, "18": [9, 17], "184": 32, "188908": 32, "19": [30, 31, 32], "19680801": 4, "1984": 9, "1st": 32, "2": [3, 5, 17, 18, 26, 29, 30, 31, 32, 34], "20": [9, 11, 30, 32], "200": 10, "2014": 2, "204": [30, 31], "204208": 32, "21": [31, 32], "211536": [30, 31, 32], "21171": [30, 31, 32], "216": 32, "217": 31, "22": [11, 29, 30, 31, 32], "226127": 32, "23": [30, 31, 32], "235702": 32, "236852": 31, "248706": 31, "25": [7, 11, 17, 29, 31, 32], "2500": [29, 30, 31, 32], "26": [30, 31, 32], "27": [30, 31, 32], "2750": 31, "28": 32, "2833": [29, 30, 31, 32], "29": [31, 32], "2nd": 32, "3": [5, 17, 18, 29, 30, 31, 32], "30": [11, 15, 30, 31, 32], "300": 11, "31": [31, 32], "3101282": [30, 31, 32], "32": [30, 31, 32], "329200": 32, "33": 31, "330877": 31, "345765": 31, "347082": 31, "349909": 31, "35": [29, 30, 31, 32], "370376": [30, 31, 32], "373450": [30, 31, 32], "38": [29, 30, 31, 32], "382652": 31, "389108": 32, "389948": 32, "39": 31, "392076": 31, "3rd": 32, "4": [3, 4, 5, 17, 18, 30, 31, 32], "40": 31, "42": [5, 6, 7, 20, 21, 31], "420000": 32, "429809": 32, "431": 32, "44": 32, "45": [6, 10, 30], "4500": [30, 31, 32], "454": 32, "4542": 32, "454200": 32, "4583": 31, "47": 31, "479818": 32, "49": 32, "491": 32, "5": [4, 11, 17, 25, 30, 31, 32], "50": [11, 32], "500": 11, "51": 31, "512": [7, 32], "52": [7, 8, 31], "523893": 32, "526497": 32, "53": [8, 30, 31, 32], "54": [11, 31], "55": [10, 31], "5500": 31, "5542": 31, "56": 31, "58": [29, 31], "6": [11, 17, 30, 31], "60": [6, 30], "600": 7, "61": [29, 31], "62": 31, "64": 25, "649682": 32, "6607": [30, 31, 32], "661633": 32, "665": 30, "666": [5, 30], "6666666666666667": 7, "67": 32, "675": 31, "687": 30, "693429": 32, "694268": 32, "69911764705882": 32, "699118": 32, "7": [5, 7, 8, 11, 29, 30, 31, 32], "70": 11, "71": [11, 29, 30, 31, 32], "712": 8, "714": [30, 31, 32], "72": 5, "726645": 32, "73": 30, "741782": 32, "742038": 32, "75": [10, 30, 32], "7500": [30, 31, 32], "777": 5, "8": [5, 11, 15, 17, 29, 30, 31, 32], "80": [10, 11, 31, 32], "800": 11, "829": 31, "83": [30, 31], "830": 31, "84": 15, "85": 11, "854": 31, "86": 11, "860": 31, "8625": 31, "865": 31, "866": 31, "871": 31, "872": 31, "873": 31, "874": 31, "879": 31, "880": 31, "884": 31, "885": 31, "886": [30, 31, 32], "887": [30, 31, 32], "888": [30, 31, 32], "889": [30, 31, 32], "890": [30, 31, 32], "891": [30, 31, 32], "9": [7, 8, 9, 10, 11, 30, 31], "90": 11, "910400": 32, "915709": 32, "9250": [29, 30, 31, 32], "970121": 32, "99": 9, "99th": 9, "A": [0, 5, 6, 7, 8, 9, 10, 17, 18, 24, 25, 29, 31, 32], "AND": 31, "And": [6, 9, 15, 29], "As": [4, 6, 25, 31, 32], "Be": [10, 25], "But": [4, 6, 7, 9, 10, 11, 15, 25], "By": [8, 13, 23, 24, 30, 33], "For": [0, 2, 4, 5, 6, 7, 9, 13, 15, 17, 22, 25, 29, 30, 31, 32, 33, 34], "If": [3, 5, 6, 7, 8, 9, 10, 11, 15, 20, 21, 23, 24, 25, 26, 28, 29, 31, 32, 33, 34], "In": [2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 17, 18, 22, 23, 24, 25, 26, 28, 29, 30, 32, 34], "It": [2, 5, 6, 7, 9, 10, 11, 15, 17, 18, 21, 25, 29, 30, 31, 32, 33], "Its": 15, "No": 25, "Not": [10, 18], "OF": 15, "OR": [15, 31], "On": 23, "One": 33, "Or": [5, 10, 11, 25, 28], "THE": 15, "That": [1, 3, 10, 11, 27], "The": [0, 1, 2, 3, 6, 7, 9, 10, 15, 17, 19, 20, 22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 34], "Then": [25, 31], "There": [4, 5, 6, 7, 9, 11, 15, 19, 25, 26, 28], "These": [0, 6, 8, 15, 19, 24, 28, 29, 31, 32], "To": [6, 7, 8, 9, 11, 13, 15, 16, 20, 21, 23, 24, 25, 30, 31, 32, 34], "With": [3, 24, 31], "_": 15, "____": [9, 10, 11], "_alistairs_real_ag": 6, "aaah": 8, "ab": [5, 6], "abbrevi": 7, "abil": 31, "about": [0, 2, 3, 4, 5, 6, 8, 9, 11, 15, 17, 20, 22, 25, 27, 28, 29, 30, 31, 32, 33], "abov": [5, 6, 7, 9, 10, 15, 24, 25], "absenc": 31, "absolut": [1, 5, 6, 8, 12, 13, 16, 26, 27, 34], "accept": 2, "access": [5, 9, 17, 18, 23, 25, 28, 29, 31], "accident": 11, "accordingli": 7, "account": 25, "accumul": 34, "acess": 5, "acknowledg": [1, 27], "acronym": 10, "across": [32, 33], "action": [10, 11, 17, 24, 31], "activ": 24, "actual": [6, 7, 10, 15, 17, 29, 30, 32], "ad": [5, 6, 10, 15, 17, 25, 28, 29], "add": [5, 6, 7, 8, 9, 10, 24, 29, 31], "add_": 4, "addit": [7, 8, 15, 17, 23, 28, 31, 33], "addition": [6, 23, 24, 33], "adieu": 15, "adjust": [11, 23, 33], "adopt": [18, 28, 29], "adress": 6, "adult": 17, "advanc": [13, 15, 17, 31], "advantag": 13, "advic": 0, "advis": [10, 25], "aeg": 8, "aesthet": 33, "af": 15, "affect": [6, 9, 24], "affix": 15, "africa": 15, "afsl\u00f8r": 15, "after": [6, 7, 8, 9, 10, 15, 17, 18, 25, 27, 28, 29, 31], "afterward": [12, 25], "ag": [6, 8, 17, 25, 29, 30, 31, 32, 33], "again": [10, 11, 12, 28], "age_in_3_year": 29, "agg": 32, "agit": 15, "ago": [6, 23], "agre": 25, "agreement": 25, "ah": 15, "ahead": 25, "ahlin": 31, "ahm": [6, 7], "air": 15, "aka": [7, 29], "alexenia": 31, "algorithm": 27, "alias": [18, 28, 29, 30, 31, 32, 33], "alic": 17, "align": [4, 29], "all": [1, 2, 3, 6, 7, 9, 10, 11, 12, 15, 18, 19, 24, 25, 26, 27, 28, 29, 30, 31], "allen": [29, 30, 31, 32], "allevi": 30, "allow": [2, 5, 7, 9, 11, 17, 21, 23, 24, 25, 29, 30, 31, 32, 33], "almost": [6, 10], "along": [12, 25, 28, 29, 30], "alphabet": [8, 15], "alphanumer": 6, "alreadi": [8, 10, 17, 25, 26, 28], "also": [2, 3, 4, 5, 6, 7, 8, 15, 20, 21, 22, 23, 25, 28, 29, 31, 32, 33], "alt": 24, "alter": [9, 17], "altern": [11, 23, 25], "although": [5, 15, 31], "alwai": [5, 8, 10, 11, 19, 23, 25, 31], "am": [5, 8, 15, 17], "ambigu": 7, "ameli": 31, "amercian": 11, "america": 15, "among": 33, "amount": 29, "an": [1, 2, 5, 6, 7, 8, 9, 10, 13, 15, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 34], "analys": [32, 34], "analysi": [24, 26, 30, 32, 33], "analyt": [1, 27], "analyz": 15, "ander": 31, "andersson": 31, "andr": 15, "ani": [3, 5, 6, 8, 9, 10, 11, 15, 17, 18, 20, 21, 23, 24, 25, 28], "anim": 10, "anoth": [5, 7, 11, 15], "answer": 7, "ant": 27, "anyon": [1, 27], "anyth": [5, 8, 9, 10, 15], "anywher": 23, "appear": [7, 15, 33], "append": [5, 10, 11, 15], "appli": [18, 29, 30, 31, 32], "applic": [17, 23, 25], "approach": [15, 30, 32], "appropri": [6, 11, 32], "ar": [1, 2, 3, 5, 7, 8, 10, 13, 14, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25, 28, 29, 30, 32, 34], "archangel": 15, "archiv": 25, "area": 33, "argument": [0, 6, 29, 30, 32, 33], "aris": 31, "arithmet": 7, "around": [6, 8, 25, 27], "arrai": [4, 10, 18, 29], "arrow": [23, 24], "asdf": 10, "ask": [7, 11, 25, 29], "asp": 15, "aspect": 33, "asplund": 31, "assign": [5, 8, 9, 10, 11, 12, 29], "associ": [11, 18, 34], "assum": 29, "astyp": 32, "attempt": [9, 11], "attend": [1, 7, 12, 27], "attent": 0, "attribut": [30, 31], "auditori": 2, "august": 15, "augusta": 31, "australia": 2, "auto": 22, "automat": [6, 10, 11, 23, 24, 28], "autosav": 23, "avail": [0, 25, 30, 32, 33, 34], "averag": [7, 32], "avert": 15, "avoid": [6, 10], "awar": 25, "ax": [4, 33], "axi": [29, 30, 33], "b": [5, 6, 8, 10, 11, 18, 24], "b28": 31, "b42": [30, 31, 32], "ba": 6, "back": [6, 11, 23, 25], "backslash": 5, "backward": 9, "bad": [6, 31], "bar": 11, "barh": 33, "base": [1, 3, 5, 7, 11, 17, 18, 27, 30, 33], "basic": [11, 12, 17, 26, 29, 31, 34], "beast": 15, "beaufort": 15, "beauti": 15, "becaus": [5, 6, 7, 8, 10, 15, 31, 32], "beckwith": 31, "becom": [6, 9, 11, 15, 29, 31], "been": [1, 6, 8, 9, 10, 11, 15, 17, 25, 27], "befor": [1, 5, 8, 9, 11, 12, 15, 20, 25, 27, 28, 31], "begin": [4, 5, 6, 9, 10, 17, 26], "beginn": [1, 8, 12, 13, 16, 26, 27, 34], "behav": 31, "behavior": [9, 31], "behind": 15, "behr": [30, 31, 32], "being": [2, 6, 10, 15, 30], "below": [1, 5, 6, 8, 9, 10, 11, 12, 15, 20, 21, 24, 25, 29, 30, 34], "beneath": [20, 21], "benefit": 31, "best": 6, "betingels": 15, "better": [6, 11, 31], "between": [5, 7, 8, 11, 15, 23, 33], "beyond": 17, "bib": 2, "bibliographi": 2, "bibtex": 2, "binder": 21, "birth": 15, "bit": [5, 11, 25, 26], "blah": 8, "blank": 8, "blind": 9, "blink": 24, "block": [3, 6, 10, 12, 17], "blu": 6, "blue": [6, 10, 24], "blur": 8, "boarder": 15, "bodi": [10, 11], "boi": 15, "boks": 0, "bold": 15, "bonnel": [29, 31], "book": [1, 2, 3, 4, 7, 9, 10, 15], "book_titl": 9, "boolean": [11, 30], "borrow": [1, 27], "bortfiltrer": 15, "both": [2, 5, 6, 8, 9, 15, 17, 18, 29, 31, 32, 33], "bottom": [10, 24, 25], "boundari": 15, "box": [2, 6, 23, 25, 33], "boxplot": 33, "brace": 24, "bracket": [5, 6, 9, 22, 31, 32], "bradlei": [30, 31, 32], "branch": 11, "braund": [29, 30, 31, 32], "breadcrumb": 23, "brew": 11, "brian": 2, "briefli": 9, "brigg": [30, 31, 32], "brilliant": 15, "brisban": 2, "broader": 25, "brother": 15, "brought": 15, "brows": 25, "browser": [23, 25], "bug": 28, "build": [2, 6, 10, 11, 12, 13, 17, 34], "built": [3, 6, 7, 10, 12, 17, 25, 32], "builtin": 8, "button": [6, 11, 25], "bystrom": 31, "c": [8, 10, 11, 23, 30, 31, 32], "c103": 31, "c123": [30, 31, 32], "c148": [30, 31, 32], "c50": 31, "c85": [30, 31, 32], "cabin": [30, 31, 32], "cach": 15, "calcul": [5, 7, 9, 10, 29, 30, 32], "calendar": 26, "call": [2, 6, 7, 8, 9, 10, 11, 17, 18, 25, 28, 29, 30, 33, 34], "came": 7, "campaign": 11, "can": [0, 1, 2, 3, 4, 8, 9, 10, 11, 12, 15, 16, 17, 18, 20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "cannot": [6, 7, 8, 9, 17, 23, 25], "capabl": [5, 18, 28], "capit": [15, 25], "captur": 9, "car": 11, "care": 6, "carefulli": 25, "carl": 31, "carolin": 15, "carpentri": [1, 27], "carri": [8, 11, 30, 31, 32], "carter": 31, "case": [8, 10, 15, 25, 28], "cat": 10, "catalina": 25, "catch": [6, 11], "categor": 29, "categoris": 11, "catherin": [30, 31, 32], "caught": 11, "caus": [8, 25, 28], "caution": [0, 25], "cd": 23, "cell": [7, 8, 9, 10, 20, 21, 22], "center": 33, "central": 34, "certain": [5, 6, 11, 15, 17, 18, 29], "certainli": 6, "certif": 25, "chang": [6, 10, 11, 15, 17, 23, 25, 29], "chapter": [12, 15], "char": 10, "charact": [5, 6, 7, 10, 15], "characterist": 29, "charat": 15, "charm": 7, "cheatsheet": 0, "check": [4, 5, 6, 11, 23, 29, 30, 31, 34], "checkpoint": 23, "child": 15, "choic": [6, 11, 25], "choos": [10, 33], "christian": 15, "christoph": 2, "chronolog": [6, 11], "cite": 2, "clarifi": [0, 6], "clariti": [11, 31], "class": [31, 32, 33, 34], "classifi": 11, "clau": 31, "clean": [15, 24], "clean_text_1": 15, "clean_text_2": 15, "cleaned_text": 15, "clear": [6, 9, 11, 24, 31], "clearli": 15, "click": [6, 8, 23, 24], "clidk": 20, "clock": 15, "close": [6, 8, 22, 25], "closer": [5, 8], "cm": 4, "cmap": 4, "cmd": [23, 24, 25], "code": [1, 2, 3, 6, 7, 8, 9, 10, 17, 19, 22, 25, 27, 28, 30, 31, 32, 33, 34], "coder": 34, "coffe": [6, 11], "cognit": 2, "cold": 4, "collaps": 23, "collect": [6, 9, 10, 11, 17], "colon": [6, 10, 11], "color": [4, 6, 33], "colour": [5, 6, 10, 33], "colum": 18, "column": [18, 32, 33], "com": 15, "combin": [8, 9, 11, 17, 29, 32], "combind": 32, "come": [7, 11, 23, 25], "comma": [6, 9, 15, 18, 30, 31], "command": [3, 7, 10, 23, 25, 28, 29, 30, 31], "common": [6, 10, 17, 32], "commonli": [8, 17], "commonmark": 2, "compar": [5, 8, 18, 29, 31], "comparis": 5, "comparison": [15, 17], "compil": [16, 25], "complementari": 31, "complet": [13, 25], "complex": 33, "compos": [9, 15], "comprehens": [15, 19], "comput": [1, 5, 18, 19, 20, 21, 24, 25, 26, 27], "concat": 29, "concaten": [7, 8, 10, 29], "concept": [13, 16, 26], "concern": 6, "concis": [30, 31], "concord": 15, "condit": [5, 8, 13, 25, 30], "confer": 2, "configur": 21, "confirm": 23, "confus": [5, 16], "congratul": [11, 25], "conjunct": [27, 34], "connect": [1, 14, 25], "consecut": 7, "consequ": 0, "consid": [9, 17, 33], "consider": 15, "consist": [5, 7, 10, 15, 31], "contain": [5, 6, 10, 11, 15, 17, 20, 21, 24, 29, 30, 31, 32, 33, 34], "content": [0, 2, 3, 6, 9, 15, 17, 21, 23, 30], "context": [15, 18], "contextlib": 4, "continu": [5, 11, 25, 32], "contrari": 8, "contrast": 9, "contribut": 15, "control": [17, 23, 31], "conveni": [29, 30, 31, 32, 33], "convent": [0, 10, 18, 28, 29], "convention": 28, "convers": 12, "convert": [3, 5, 7, 11, 29, 32], "coolwarm": 4, "copenhagen": [1, 25, 26, 27], "copi": [6, 11, 23, 25, 31], "cop\u00eat": 15, "core": [24, 29, 30, 31], "corollari": 27, "corpor": 25, "correct": [7, 11, 17, 23], "correctli": [6, 8, 10, 11, 17, 28, 32], "correspond": [9, 24, 29, 32], "cortex": 2, "could": [7, 9, 11, 30], "count": [6, 7, 8, 9, 11, 30, 31, 33], "counter": 11, "cours": [1, 7, 10, 11, 12, 13, 14, 17, 25, 34], "courtenai": 31, "cover": [12, 13, 23, 31, 33], "creat": [4, 7, 8, 9, 10, 11, 12, 13, 15, 17, 20, 21, 22, 23, 25, 33], "creation": [9, 29], "creatur": 15, "crimin": 15, "criteria": [11, 18, 31], "critic": 0, "cruyssen": 31, "csv": [33, 34], "ctrl": [11, 23, 24], "cultur": [1, 27], "cume": [30, 31, 32], "curli": 24, "current": [1, 9, 10, 11, 24, 25, 27], "cursor": 24, "custom_lin": 4, "cut": 7, "cwd": 30, "cycler": 4, "d": [3, 9, 10, 24, 30, 31], "d35": 31, "dag": 25, "dai": [7, 15], "danger": 0, "dark": 15, "data": [4, 6, 8, 10, 11, 12, 15, 18, 24, 25, 26, 31, 33], "databas": 30, "datacamp": 25, "datafram": [33, 34], "datalab": [1, 27], "dataset": [18, 25, 30, 31, 32, 33, 34], "de": [2, 15], "dec": 15, "decent": 11, "decim": [5, 8, 17], "decod": 15, "deep": 30, "deeper": 22, "deepest": [1, 27], "def": 15, "default": [3, 6, 23, 24, 25, 28, 29, 30, 32, 33], "defin": [3, 6, 8, 10, 11, 17, 31, 32], "definit": [6, 15, 16], "deform": 15, "del": 9, "delet": 22, "delic": 11, "delici": 11, "delus": 15, "dem": 15, "demand": 10, "den": 15, "denn": 0, "densiti": 33, "departur": 30, "depend": [2, 7, 8, 17, 23, 25, 28], "depth": [9, 22], "der": 15, "descend": 15, "describ": [0, 8, 15, 25, 30, 32], "descript": [9, 25], "design": [17, 20, 21, 22, 26, 29, 31, 32], "desir": 23, "despacito": 9, "destin": 25, "det": 15, "detail": [3, 20, 21, 25, 32, 33], "detect": [7, 8], "determin": [7, 11, 27, 29, 30, 31], "develop": [19, 25, 27], "develp": 25, "df": [18, 29, 31], "df_transpos": 29, "dictionari": [12, 16], "differ": [0, 1, 2, 5, 6, 10, 11, 12, 15, 17, 18, 22, 24, 25, 30, 31, 32, 33], "difficult": 10, "digit": [6, 8, 15], "dimens": [29, 30, 31], "dimension": [18, 29], "dire": 15, "direct": [0, 3], "directli": [5, 7, 23, 24, 25, 28, 31, 33], "directori": 34, "disabl": [24, 25], "discard": 9, "displai": [3, 8, 9, 11, 23, 25, 29, 30, 31, 32], "disrupt": 8, "diss": 15, "distanc": 6, "distant": 15, "distinct": 32, "distinguish": 15, "distribut": [32, 33], "dive": [12, 22, 24, 33], "divid": [5, 7], "divin": 15, "dk": 20, "dkk": 29, "do": [2, 4, 5, 6, 8, 9, 10, 11, 15, 17, 23, 25, 26, 29, 30, 31], "document": [0, 2, 3, 4, 9, 11, 23, 31, 32, 33], "documentaion": [1, 27], "doe": [5, 6, 7, 8, 9, 10, 15, 23, 25, 32], "doesn": [5, 6, 8, 15, 32], "doesnt": 25, "dog": 10, "dollar": 4, "don": [7, 11, 16, 25], "done": [5, 6, 7, 10, 11, 17, 25, 28, 29, 31, 32, 33], "doolei": [30, 31, 32], "dot": 33, "doubl": [6, 7, 15, 17, 23, 25, 31], "down": [6, 8, 11, 15, 23, 24, 25], "download": [1, 12, 15, 27, 28], "downward": 24, "drag": 23, "draw": 6, "dream": 15, "drive": 25, "drop": [23, 25], "dropna": 32, "dsaio": 9, "dtype": [29, 31, 32], "dure": 10, "e": [6, 7, 8, 9, 10, 11, 15, 17, 20, 23, 24, 26, 29, 30, 31, 32], "e46": 31, "each": [0, 5, 6, 7, 8, 9, 10, 11, 12, 18, 23, 29, 30, 32, 33], "earlier": 23, "easi": [11, 15, 32, 33], "easier": [6, 15, 18, 24, 28, 29], "easiest": 25, "easili": [24, 25, 32], "ebook": 15, "ecosystem": 2, "edith": [30, 31, 32], "editor": [5, 6, 23], "edu": 21, "edward": 31, "effect": [9, 11, 22, 23, 31], "effici": [10, 22, 23, 24, 27, 29, 31, 32], "efter": 15, "either": [5, 6, 7, 9, 11, 13, 15, 17, 25, 31], "elabor": 33, "elaps": 7, "electron": 25, "element": [1, 6, 9, 17, 18, 29, 30], "eleph": 10, "elizabeth": 31, "ellipsi": 30, "els": [5, 9, 10], "elsewher": 0, "email": [20, 21], "emb": 4, "embark": [30, 31, 32], "embrac": 15, "emilia": 31, "empti": [8, 10], "en": [0, 15], "enabl": [23, 24, 25, 32, 34], "enclos": [5, 24], "encount": [16, 19, 28], "encourag": [1, 20, 27], "end": [4, 5, 6, 10, 11, 13, 15, 17, 30, 31], "engag": 11, "engin": [15, 24], "england": 15, "english": [8, 15], "englishman": 15, "enhanc": 22, "enlighten": 15, "enrol": 7, "ensur": [1, 13, 15, 23, 24, 27, 28, 31], "ensurepip": 25, "enter": [11, 23, 24, 25], "entir": [6, 9, 24, 29, 31, 32], "entri": [30, 31, 32], "environ": [5, 6, 8, 25, 30], "episod": [8, 9], "epub": 15, "equal": [6, 7, 9, 17, 29], "equip": 31, "equival": 10, "er": 15, "eras": 25, "erda": 17, "ernest": 31, "error": [0, 6, 7, 9, 28, 31], "esc": 24, "escap": [4, 5], "especi": [17, 24], "espresso": 11, "essenti": [5, 13, 22, 30], "estim": 33, "et": 15, "etc": [4, 5, 6, 8, 9], "european": 15, "evalu": [6, 11], "evelyn": 31, "even": [5, 7, 9, 11, 13, 15, 28, 30], "evenli": 7, "event": [8, 15], "everi": [7, 15, 23], "everydai": 15, "everyon": [7, 10], "everyth": 15, "evid": [2, 31], "evolv": 11, "ewr_422_yi": 6, "ex": 25, "exact": 31, "exactli": [8, 15, 30, 34], "exampl": [2, 4, 5, 6, 7, 8, 9, 10, 15, 17, 18, 20, 21, 23, 25, 31, 32], "excel": [11, 15, 28, 34], "except": 8, "excerpt": 15, "exchang": [6, 29], "exclaim": 5, "exclam": 28, "exclud": [17, 32], "execut": [3, 6, 8, 9, 17, 24, 31], "exercis": [12, 31, 34], "exist": [5, 6, 8, 9, 10, 17], "exit": 11, "exitstack": 4, "exmampl": 0, "expand": 23, "expect": [7, 8, 10, 11, 26], "experi": [15, 21, 34], "experiment": 7, "explain": [5, 7, 8, 9, 10, 11, 17, 20, 21, 29], "explan": [5, 10], "explicit": 31, "explicitli": [7, 31, 32], "explor": [23, 31], "exploratori": 33, "export": 30, "express": [5, 7, 8, 9, 11, 15], "extend": [1, 5, 9, 27, 29], "extens": [0, 2, 33], "extern": 28, "extra": [7, 8], "extract": [5, 9, 15, 17, 18, 30, 31], "extrem": [5, 6, 15], "ey": 6, "eye_color": 6, "f": [6, 15], "fact": 6, "faint": 15, "fair": 15, "fairi": 15, "fairli": 6, "fall": 10, "fals": [5, 11, 17, 30], "famili": 15, "familiar": [7, 26], "far": [6, 10, 11, 25], "fare": [29, 30, 31, 32, 33], "fare_in_dkk": 29, "farewel": 15, "fast": [10, 11], "favorit": 10, "featur": [6, 20, 21, 22, 23, 24, 25, 28, 33], "feel": 34, "femal": [29, 30, 31, 32, 33], "feng": 8, "fetch": 9, "few": [5, 6, 15, 21, 25, 32, 33], "field": 15, "fig": 4, "figsiz": 4, "figur": [6, 7, 15, 33], "file": [3, 14, 18, 20, 21, 22, 25, 28, 33, 34], "filenam": 6, "fill": 29, "filter": 15, "final": [6, 8, 9, 11], "find": [1, 5, 7, 8, 9, 15, 22, 23, 25, 26, 27, 30, 32, 33], "findal": 15, "finder": [23, 25], "fine": 25, "finger": [6, 23, 27], "finicki": 25, "finish": [10, 25], "first": [5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 17, 25, 30, 31, 32], "first_nam": 6, "firstnam": 10, "fish": 10, "fit": 32, "five": 30, "fix": [4, 8, 10, 25, 28], "flabadab": 6, "flag": 28, "flash": 15, "flavor": 2, "flexibl": [31, 33], "float": [8, 9, 11, 18, 29, 30], "float64": [29, 30, 31, 32], "floor": [5, 7], "florenc": [30, 31, 32], "flow": [8, 11, 17], "focu": [26, 33, 34], "focus": [11, 24], "fold": 5, "folder": [23, 25, 30, 34], "follow": [2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 15, 23, 24, 25, 29, 30, 32, 33, 34], "food": 27, "fool": 15, "fora": 19, "fordi": 15, "forgot": 8, "form": [5, 9, 15, 17, 29, 34], "format": [6, 18, 30], "former": 7, "formula": 7, "forskellig": 0, "forward": 9, "found": [12, 20, 21, 25, 30, 31, 32, 34], "foundat": [13, 26], "four": [5, 10, 17], "fourth": [9, 10], "fra": 15, "fraction": [7, 17], "frame": [29, 30, 31], "franc": 15, "free": [26, 34], "frenzi": 15, "fridai": 15, "fright": 15, "from": [1, 4, 5, 6, 7, 8, 10, 11, 13, 15, 17, 18, 20, 21, 23, 24, 25, 27, 29, 33], "front": [1, 27, 28], "frontier": 2, "fuction": 17, "fulfil": 11, "full": [7, 13, 15, 25, 30, 32, 34], "full_nam": 7, "fulli": 16, "fun": [6, 11], "function": [2, 6, 7, 9, 10, 12, 15, 18, 24, 28, 29, 30, 31, 32], "fundament": [6, 15], "further": [20, 21, 23, 31, 33], "futrel": [30, 31, 32], "futur": [6, 8, 25, 28], "g": [6, 7, 9, 15, 17, 23, 24, 26, 31, 32], "gain": [15, 26], "gallant": 15, "game": 13, "gather": [11, 26], "gbp": 29, "geeksforgeek": [29, 30], "gener": [0, 6, 9, 11, 31, 32, 33], "geneva": 15, "geneves": 15, "georg": 31, "german": 15, "germani": 15, "get": [1, 2, 3, 5, 8, 9, 15, 26, 27, 31, 32, 33], "giant": [1, 27], "gip": 10, "giraff": 10, "girl": 15, "give": [7, 10, 15, 25, 31, 33], "given": [6, 7, 8, 9, 18, 29, 32], "go": [8, 10, 11, 12, 23, 24, 25, 28], "goal": [9, 11], "godwin": 15, "goe": [5, 8, 9, 10], "gold": [8, 9], "good": [7, 8, 11, 15, 19, 25], "googl": 19, "gosta": 31, "got": 8, "grade": 11, "graham": [30, 31, 32], "grammar": [8, 17], "grammat": 15, "graphic": 33, "grasp": 16, "great": [11, 15], "greater": [5, 7, 11, 31], "greedi": 15, "green": [6, 10], "greenland": 15, "greet": 17, "grimm": 15, "group": 10, "grow": 10, "guess": 6, "guessed_correctli": 11, "guid": [4, 8, 15, 22, 23, 24, 25, 28, 33], "gutenberg": 15, "h": [7, 31], "ha": [1, 5, 6, 7, 8, 9, 10, 15, 17, 18, 19, 24, 25, 27, 30, 31], "had": 15, "half": 7, "halo": 15, "hand": [9, 20], "handi": 5, "handiest": 6, "handl": [7, 32, 34], "hang": 15, "hansen": 31, "happen": [6, 7, 15, 23], "har": 0, "harri": [30, 31, 32], "harrypotter1": 9, "have": [1, 3, 6, 9, 10, 11, 12, 13, 15, 17, 20, 21, 25, 26, 27, 28, 30, 31, 34], "haven": 6, "hdhpk14": 2, "he": 15, "head": 25, "heath": [30, 31, 32], "heaven": 15, "heavi": 15, "heer": 2, "height": 33, "heikkinen": [30, 31, 32], "helen": [30, 31, 32], "hello": [5, 7, 8, 17, 25], "help": [0, 1, 2, 5, 6, 9, 12, 15, 16, 22], "henri": [30, 31, 32], "hentet": 0, "here": [0, 1, 2, 4, 5, 6, 7, 8, 10, 11, 14, 20, 21, 23, 24, 25, 27, 28, 29, 30, 31, 33, 34], "herfra": 0, "hewlett": 31, "hexbin": 33, "hi": [5, 15], "hickman": 30, "hide": 20, "high": [0, 6, 9, 11], "higher": [6, 8, 11, 30], "highli": 33, "highlight": [24, 25], "hint": [0, 6, 9, 11], "hire": 15, "hist": 33, "histogram": 33, "histor": 15, "hit": 15, "hivb10078u": 14, "hold": [9, 18, 23, 29, 30, 34], "holdgraf": 2, "holdgraf_evidence_2014": 2, "holidai": 15, "homer": 15, "hop": 34, "horizont": [29, 33], "hot": 4, "hover": 21, "how": [0, 1, 3, 6, 7, 8, 11, 12, 15, 17, 19, 23, 24, 26, 27, 28, 29, 30, 31, 32, 33, 34], "howel": [30, 31, 32], "howev": [5, 6, 7, 11, 23, 25, 28, 30, 31, 33], "html": [0, 4], "http": [0, 15], "hugh": 31, "human": [2, 6, 15, 27], "hundr": 9, "hung": 15, "hvad": 15, "hvi": 15, "hvordan": 0, "hyphen": 9, "i": [3, 4, 5, 12, 13, 15, 17, 18, 19, 22, 24, 28, 31, 32, 33, 34], "icard": 31, "icon": [20, 21, 23, 24, 25], "id": [10, 25], "idea": [8, 19, 25, 31], "ideal": 6, "identifi": [15, 18, 30, 31], "idiom": 6, "ignor": [8, 17], "igonr": 5, "ii": 4, "ikk": 15, "illustr": [5, 15, 33], "imag": 4, "imagin": 11, "immedi": 0, "import": [0, 4, 6, 7, 8, 11, 15, 18, 23, 33, 34], "improv": 11, "inadvert": [1, 27], "inbox": 25, "includ": [0, 3, 4, 5, 8, 9, 10, 11, 15, 17, 21, 23, 25, 28, 30, 31, 32, 33, 34], "incomplet": 8, "incorrect": 0, "incorrectli": 8, "increas": 15, "incredibli": 15, "increment": [10, 11], "indent": [10, 11], "indentationerror": 10, "independ": 32, "index": [8, 10, 29, 30], "indexerror": [9, 10], "indic": [0, 6, 8, 10, 15, 17, 18, 23, 29, 30, 31, 33], "individu": [5, 6, 24], "inds\u00e6tt": 15, "ineffici": 31, "inf": 14, "infant": 15, "inferior": 15, "info": 31, "inform": [0, 3, 4, 6, 7, 9, 17, 18, 22, 29, 31, 32, 33], "inher": 32, "inherit": 6, "init": 3, "initi": [6, 8, 9, 10, 11, 17, 25], "inlin": 2, "inner": 31, "input": [2, 8, 17, 23, 25], "insert": [2, 9, 15, 24], "insid": [6, 8, 10, 31], "insight": [0, 15], "inspect": [15, 30], "inspir": [1, 27], "inspirit": 15, "instal": [1, 12, 20, 21, 26, 27], "instanc": [8, 31, 32], "instantli": 25, "instead": [5, 6, 9, 10, 11, 25, 32], "instruct": [3, 6, 12, 23, 24, 25], "insuper": 15, "int": [5, 6, 7, 8, 11], "int64": [29, 30, 31, 32], "integ": [8, 9, 10, 11, 29, 30, 31], "integr": 25, "intend": 1, "intent": 28, "interact": [4, 5], "interest": [15, 27, 31, 32, 34], "interfac": 33, "intermediari": 25, "intern": 2, "interpret": [7, 9], "interrupt": 11, "interv": [9, 23], "intro": [1, 27], "introduc": 11, "introduct": [1, 13, 27, 33], "introductori": 34, "invalid": [7, 8], "involv": 18, "io": 0, "ion": 4, "ip": 10, "ipynb": [2, 20, 21], "irectori": 30, "irresist": 15, "isin": 31, "isn": [11, 25], "isna": 31, "isol": 30, "issu": [0, 25, 30, 31], "itali": 15, "item": [5, 6], "iter": [9, 10, 11], "its": [6, 7, 8, 9, 10, 11, 15, 18, 23, 24, 25, 27, 28, 29, 31, 33], "itself": [5, 6, 15, 24], "j": 31, "jacqu": [30, 31, 32], "jame": 31, "jeg": [0, 15], "johan": 31, "johanna": 31, "john": [30, 31, 32], "johnston": [30, 31, 32], "join": [5, 9, 15, 17], "jon": 10, "jr": 31, "judgement": 15, "juli": 15, "juliet": 9, "jump": 25, "june": 15, "juoza": [30, 31, 32], "juptyt": 5, "jupyt": [1, 2, 3, 4, 6, 7, 10, 11, 17, 23, 25, 27, 28, 30, 34], "jupyterbook": [0, 2], "jupytext": 3, "jura": 15, "just": [2, 6, 7, 8, 9, 22, 25, 26, 28, 32, 33], "kaggl": [30, 34], "kald": 15, "kan": [0, 15], "karl": [30, 31, 32], "karolina": 31, "kb": [20, 30, 31], "kde": 33, "keep": [4, 6, 7, 10, 11], "kei": [23, 25], "kernel": [3, 6, 11, 22, 30, 33], "keyboard": 23, "keyword": 33, "kill": 9, "kind": [2, 5, 8, 9, 11, 17, 33], "kingcom": 31, "knight": 2, "know": [1, 6, 8, 11, 17, 24, 27, 31], "knowledg": [11, 26, 31, 34], "known": [5, 8, 17, 30, 31], "koden": 0, "kub": [1, 26, 27], "kubdatalab": 20, "kwarg": 33, "l": 9, "la_": 4, "lab": [5, 6, 10, 11, 17, 23, 25, 28], "label": [6, 7, 18, 29, 31, 33], "lack": 31, "ladi": 15, "laina": [30, 31, 32], "languag": [2, 5, 6, 7, 9, 10, 12, 16, 17, 19, 27], "larg": [5, 10, 30], "larger": 8, "largest": 8, "larsson": 31, "last": [5, 6, 7, 9, 10, 15, 17, 23, 24, 25, 30], "lastnam": 10, "later": [5, 6, 8, 10, 25, 29], "latest": [0, 25, 28], "latter": 7, "launch": 25, "launcher": [23, 25], "lave": 15, "lavet": 0, "layout": 33, "lead": 31, "learn": [1, 12, 15, 19, 22, 24, 25, 27, 34], "least": [8, 9], "leav": [6, 8, 15, 17], "left": [6, 9, 20, 23], "legal": 10, "legend": 4, "len": [6, 7, 8, 9, 10, 15], "lenght": 25, "length": [5, 9, 10, 25, 29, 31], "lengthen": 9, "leonard": 31, "less": [0, 5, 25, 31], "lesson": [5, 7, 9], "let": [1, 3, 6, 7, 8, 17, 27, 31], "letter": [6, 7, 8, 9, 15], "level": [0, 24], "lewi": 30, "librari": [1, 6, 7, 18, 19, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "library_nam": 6, "licens": 25, "light": 9, "like": [2, 3, 5, 6, 7, 8, 9, 10, 11, 15, 16, 17, 18, 20, 21, 22, 23, 25, 29, 30, 31, 32], "likewis": 30, "lili": [30, 31, 32], "lilian": 31, "limit": [0, 25, 30, 31], "line": [2, 3, 4, 6, 7, 8, 9, 10, 11, 17, 18, 25, 28, 29, 30, 31, 32, 33], "line2d": 4, "link": [17, 25], "linspac": 4, "linux": 24, "list": [0, 6, 10, 11, 13, 16, 17, 18, 25, 29, 31, 32], "list_nam": 9, "listen": 15, "liter": [7, 8], "literatur": 15, "littl": [6, 15], "live": [15, 21], "ll": [2, 6, 25, 31], "load": [21, 30, 31, 32, 33], "loan": 7, "local": [1, 25, 27, 28], "locat": [6, 9, 25, 30, 34], "log": 25, "logic": [5, 10, 17, 27, 31], "login": 25, "logspac": 4, "london": 15, "long": [5, 6, 7, 9, 11, 15, 23], "longer": 25, "look": [5, 6, 7, 8, 9, 10, 11, 15, 22, 29], "loop": [9, 13, 15], "lot": [2, 4, 7, 11, 16, 25], "love": 15, "low": [6, 9, 11], "lower": [6, 8, 15], "lowercas": 15, "lucern": 15, "lullabi": 15, "luxuri": 15, "lw": 4, "m": [6, 15, 25], "machin": [11, 25, 34], "maco": [24, 28], "made": [10, 23, 30, 32, 34], "magic": [7, 30], "magistr": 15, "magnitud": 5, "mai": [0, 5, 6, 7, 8, 11, 15, 21, 24, 25, 28, 29, 30, 31, 32], "main": 28, "maintain": [23, 25, 31], "make": [1, 4, 5, 6, 7, 8, 10, 11, 15, 18, 22, 24, 25, 26, 27, 28, 29, 32], "male": [29, 30, 31, 32, 33], "man": [0, 15], "manag": [15, 18, 22, 25, 29, 34], "mang": 15, "mani": [2, 3, 5, 6, 9, 10, 11, 15, 19, 21, 25, 27, 28, 30, 31], "manipul": [29, 30, 31, 32], "manual": [6, 23], "map": 0, "margaret": [15, 30, 31, 32], "mari": [15, 31], "mark": [6, 7, 8, 17, 24, 28], "markdownfil": 3, "markedli": 2, "markup": 2, "martha": 31, "master": 31, "match": [7, 15, 29], "materi": [1, 20, 21, 27, 34], "math": [4, 7, 17], "mathemat": [6, 34], "mathemath": 5, "matplotlib": [4, 33], "matter": [5, 6, 11], "mattter": 25, "max": [9, 17, 32], "max_column": 30, "max_row": 30, "maximum": [9, 30], "mbox": 4, "mccarthi": 31, "md": [2, 3], "me": [15, 21], "mean": [1, 4, 5, 6, 8, 9, 11, 15, 17, 25, 27, 32], "meaning": [8, 10], "meaningfulli": 8, "meaningless": 32, "meant": 21, "measur": 9, "med": 15, "median": 32, "medium": 4, "melani": [1, 27], "melwalsh": 21, "memori": [24, 31], "memory_usag": 30, "mention": [9, 25], "menu": [20, 23, 24, 25], "merchant": 15, "mere": 15, "messag": [6, 7, 10, 17, 28], "met": [5, 11, 17], "metadatacharact": 15, "metaphor": 27, "method": [0, 15, 18, 23, 24, 26, 27, 29, 30, 31, 32, 33, 34], "method_nam": 9, "metric": 11, "mi": 8, "microsoft": 25, "middl": 20, "might": [0, 5, 6, 7, 8, 16, 23, 25, 31], "min": [6, 9, 32], "mind": [10, 25, 27], "miniatur": 15, "minimum": [6, 9], "minu": [5, 9], "minut": [6, 15, 21, 23], "misinterpret": 32, "miss": [1, 18, 27, 29, 30, 32], "misspel": [6, 10], "mix": 11, "mockeri": 15, "mockingbird": 9, "mode": 22, "moder": 11, "modern": 15, "modif": [17, 31], "modifi": [1, 9, 17, 23, 25, 27, 31], "modul": [8, 11, 17], "modulo": 7, "moment": 11, "momentari": 15, "mondai": 15, "monoton": 15, "montvila": [30, 31, 32], "monypeni": 31, "moran": 31, "more": [1, 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 17, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33], "moreov": 2, "most": [1, 2, 6, 7, 8, 9, 10, 15, 20, 21, 22, 23, 24, 25, 27, 28], "mostli": 25, "mous": 24, "move": [9, 11, 22, 25], "mr": [15, 30, 31, 32], "much": [1, 5, 6, 10, 11, 25, 27, 30, 32, 34], "mule": 15, "mulipli": 5, "multipl": [6, 7, 9, 11, 17, 23, 32], "multipli": [5, 7, 29], "murder": 15, "murderess": 15, "must": [0, 2, 7, 8, 10, 11, 25, 26, 28], "mutabl": 6, "my": [10, 15], "my_first_vari": 6, "myst": 0, "mysteri": 15, "m\u00e5de": 15, "n": [2, 4, 6, 7, 9, 10, 15], "name": [5, 7, 8, 17, 18, 23, 27, 29, 30, 31, 32, 33, 34], "nameerror": [6, 8, 10], "nan": [29, 30, 31, 32], "narrow": 15, "natur": 32, "navig": [16, 22, 25], "nby": 15, "ndigit": 8, "necess": 15, "necessari": [7, 26], "necessarili": 7, "need": [3, 5, 6, 7, 8, 9, 10, 11, 15, 17, 20, 21, 23, 24, 25, 26, 28, 29, 30, 31, 33, 34], "neg": [6, 8, 9, 11, 17], "negat": 5, "neither": 8, "nelson": 31, "nest": [6, 10], "neurosci": 2, "never": 11, "new": [6, 7, 8, 9, 10, 11, 12, 15, 17, 23, 24, 25], "new_df": 30, "newer": 23, "newest": [25, 28], "next": [5, 8, 9, 15, 23, 24, 25, 32], "ning": 15, "non": [9, 15, 30, 31], "none": [8, 9, 25, 30], "nor": 15, "normal": [7, 8, 10], "north": 15, "norton": 31, "notat": 31, "note": [0, 2, 5, 6, 7, 8, 24], "notebook": [1, 2, 6, 7, 11, 12, 15, 22, 23, 24, 25, 27, 28, 30, 34], "noth": 8, "notic": [5, 6, 10, 25], "notna": 31, "now": [5, 6, 8, 9, 11, 25, 28, 29, 30, 31], "np": [4, 32], "null": [30, 31], "num_as_float": 7, "num_as_int": 7, "num_as_str": 7, "num_class": 7, "num_per_class": 7, "num_stud": 7, "number": [5, 6, 8, 9, 10, 15, 17, 18, 25, 29, 30, 31, 33], "numer": [5, 18, 32], "numeric_onli": 32, "numpi": [4, 34], "nurs": 15, "o": [9, 15, 25, 30], "o2": [30, 31, 32], "obei": 6, "object": [17, 18, 34], "object_nam": 9, "obtain": 29, "obviou": 0, "oc": 6, "occur": [7, 8, 23], "occurr": 15, "ocean": 15, "odiou": 15, "off": [2, 3, 8, 25], "offer": [1, 27, 32, 33], "offic": 17, "offici": [1, 11, 22, 27, 32, 33], "often": [0, 5, 7, 10, 15, 18, 28, 33], "og": 15, "oh": 15, "old": [6, 9, 29], "older": 25, "om": 15, "omit": 8, "onc": [6, 9, 10, 17, 25], "one": [2, 5, 6, 7, 8, 9, 10, 11, 15, 17, 24, 25, 28, 29, 32], "ones": [11, 30], "onli": [5, 6, 9, 11, 15, 23, 25, 28, 29, 30, 31, 32, 33, 34], "onlin": [8, 15, 19, 20, 21], "open": [11, 15, 22, 24, 26], "oper": [6, 8, 9, 10, 11, 18, 28, 29, 30], "operand": [5, 7, 17], "opportun": 13, "opposit": [5, 17], "opreat": 5, "option": [0, 5, 23, 25, 28, 30, 33], "optr\u00e6der": 15, "oq": 31, "ord": 15, "orden": 15, "order": [5, 6, 8, 9, 10, 24, 25, 29, 32], "ordin": 32, "org": [0, 2, 15, 25], "organ": [6, 22, 23, 24, 29], "orient": 34, "origin": [6, 9, 10, 11, 17, 18, 31], "ork": 30, "oscar": 31, "other": [1, 3, 6, 7, 8, 9, 10, 15, 17, 19, 20, 21, 23, 24, 25, 26, 27, 28, 30, 33, 34], "otherwis": [5, 8, 10, 11], "oticaps": 9, "our": [1, 6, 10, 12, 13, 15, 17, 19, 25, 26, 28, 32, 34], "ourselv": 28, "out": [1, 4, 5, 6, 7, 8, 9, 10, 11, 15, 25, 27, 30, 34], "outer": [8, 31], "output": [3, 5, 6, 7, 8, 9, 11, 17, 24, 25, 29], "outsid": [6, 11], "over": [10, 11, 21, 25], "overal": 33, "overlook": 0, "overview": [2, 5, 30], "overwrit": [6, 10], "overwritten": [9, 10], "owen": [30, 31, 32], "own": [6, 9, 11, 12, 20, 21, 31], "p": [10, 30], "pacif": 15, "packag": [25, 28, 34], "page": [1, 2, 3, 10, 11, 15, 20, 21, 25, 26, 27, 30, 31], "pages_read": 10, "pages_remain": 10, "pages_written": 11, "paid": 33, "pain": 10, "palsson": 31, "panda": [1, 16, 17, 26, 27, 34], "paper": 11, "paramet": [17, 29, 30], "parch": [30, 31, 32], "parent": 23, "parenthes": [6, 8, 11, 24, 29], "parser": 0, "part": [1, 6, 7, 9, 17, 26, 27, 31, 34], "parti": 25, "particip": 13, "particular": [9, 17, 18], "particularli": 24, "partli": 15, "paslei": 2, "pass": [6, 8, 17, 32], "passeng": [30, 32, 33], "passengerid": [30, 31, 32], "past": [11, 23], "path": [3, 19, 23], "pathwai": 25, "patient": 21, "patrick": [30, 31, 32], "pattern": [10, 15, 32], "pc": [25, 30, 31, 32], "pclass": [30, 31, 32, 33], "pd": [28, 30, 31, 32, 33], "pdf": [1, 27], "peel": [30, 31, 32], "peopl": [6, 7, 8, 25, 28], "per": [7, 32], "percentag": 5, "perfect": 7, "perfectli": 11, "perform": [6, 7, 11, 15, 17, 24, 29, 31, 32], "perhap": 25, "period": [7, 15], "persdott": 31, "persist": 10, "person": [6, 8], "perspect": 27, "peter": 31, "petersburgh": 15, "pg84": 15, "philosoph": 9, "phrase": 15, "pictur": 15, "piec": 17, "pig": 10, "ping": 8, "pip": 28, "pip3": 25, "pitfal": [0, 31], "place": [5, 8, 9, 15, 19, 30, 31, 34], "placement": 10, "plain": [15, 18], "platform": 19, "pleas": [1, 12, 27, 34], "plot": [4, 32], "plot_typ": 33, "plt": 4, "plu": [7, 15, 24], "point": [15, 17, 18, 25], "pointer": 8, "polish": 33, "poor": [8, 15], "pop": [9, 25], "popular": 19, "portion": [5, 9, 18], "portrait": 15, "posit": [5, 6, 9, 11, 15, 17, 29], "possess": 13, "possibl": [15, 17, 25], "possibli": 7, "post": [4, 11], "potenti": [0, 18, 31], "potter": 31, "pow": 5, "power": [2, 5, 31, 32], "powershel": 23, "practic": [6, 24], "pre": 17, "preced": [11, 15], "precis": [6, 8, 17], "predefin": 32, "predict": [2, 8, 25], "prefer": 24, "preinstal": 25, "prepar": 13, "presenc": [3, 31], "present": [1, 27, 33], "preserv": 15, "press": [11, 23, 24, 25], "pressur": [11, 30], "presumpt": 15, "prevent": 7, "preview": 9, "previou": [6, 10, 15, 31, 32], "price": [29, 32], "primari": [19, 20], "print": [3, 7, 8, 9, 10, 15, 17, 20, 21], "printout": 6, "prior": 21, "privat": 25, "probabl": 6, "problem": [0, 7, 8, 10], "problemat": 8, "process": [5, 11, 15, 16, 17, 25], "produc": [8, 9, 10], "product": 5, "program": [5, 6, 7, 8, 9, 10, 16, 17, 19, 25], "progress": [15, 23], "project": [6, 11, 15, 20, 21, 23], "prometheu": 15, "promis": [6, 15], "prompt": [23, 28], "proof": 15, "prop_cycl": 4, "proper": [1, 27], "properli": [2, 10, 11], "properti": [5, 18, 31], "proport": 33, "proverbi": [1, 27], "provid": [6, 11, 17, 18, 22, 23, 25, 26, 28, 29, 30, 31, 32, 33], "pseudocod": 11, "punctuat": [6, 8], "punktum": 15, "purpos": [2, 8, 29], "put": [6, 15], "pwd": 30, "pyplot": 4, "python": [1, 5, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 23, 26, 27, 28, 29, 30, 31, 34], "python3": 25, "python_regex": 15, "p\u00e5": 15, "q": [30, 31, 32], "quantiti": 32, "queri": 7, "question": [5, 6, 7, 8, 9, 10, 11, 29, 30, 31, 32, 33], "quick": [24, 30, 33], "quickli": [24, 32, 33], "quit": 11, "quot": [7, 10, 24], "quotat": [6, 7, 8, 17], "quotient": 5, "r": 15, "rain": 15, "ramsai": 2, "randint": 11, "randn": 4, "random": [4, 11], "rang": [4, 5, 9, 11, 17, 33], "rangeindex": [30, 31], "rank": 32, "rapidli": 15, "rare": 9, "rate": 29, "rather": [6, 9, 10, 31, 32], "raw_text": 15, "rcparam": 4, "re": [11, 15, 25, 31], "reach": 10, "read": [6, 7, 8, 10, 11, 17, 25, 27, 28, 31, 32, 33, 34], "read_": 30, "read_csv": [30, 31, 32, 33], "read_excel": 30, "readabl": 6, "reader": [0, 11, 28], "readi": [25, 30, 33], "readthedoc": 0, "real": [6, 11, 17], "realiti": 15, "realiz": 15, "realli": 11, "realpython": 25, "rearrang": 24, "reason": [7, 8, 27, 31], "reassign": 6, "recent": [6, 7, 8, 9, 10, 23], "recognit": [1, 27], "recommend": [6, 11, 25, 26, 27, 31], "recompens": 15, "rectangular": 32, "red": [6, 10], "redgreenblu": 10, "refer": [0, 2, 5, 7, 9, 11, 16, 17, 18], "reflect": [20, 23, 32], "regard": 8, "regardless": 24, "regex101": 15, "regular": [2, 9, 11, 15, 23], "reinforc": 6, "rel": [6, 15, 30], "relat": [0, 11, 15, 19, 28], "relationship": 33, "releas": 25, "relev": [6, 15, 31], "reli": [28, 31], "reliabl": [25, 31], "remain": [7, 8, 10, 11, 15], "remaind": [5, 7], "remark": 15, "rememb": [6, 7, 8, 9, 10, 11, 12, 19], "remov": [9, 10, 15, 17, 25], "renam": 23, "render": 2, "reopen": 6, "reorder": [10, 24], "repeat": [7, 8, 10, 17], "repeatedli": 11, "replac": [6, 10, 15, 23], "replic": 21, "report": [5, 6, 8, 9], "repres": [5, 7, 9, 17, 18, 29, 30, 31, 32, 33], "reproduc": 4, "republ": 15, "request": [15, 25], "requir": [0, 7, 8, 11, 17, 24, 25, 26, 27, 28, 29, 31, 33], "rerun": [6, 24], "research": 25, "reserv": 6, "reset": 6, "reshap": [18, 29], "resist": 6, "resourc": [19, 22], "respect": [23, 25], "respond": 25, "ressourc": [1, 27], "rest": [3, 15], "restor": 15, "result": [5, 6, 7, 8, 9, 10, 11, 15, 30, 31, 32], "retain": 10, "rethink": 6, "retreat": 15, "retriev": 15, "return": [5, 7, 9, 11, 15, 17, 25, 29, 30, 31, 32], "reusabl": 17, "reuss": 15, "rev": [30, 31, 32], "reveal": [20, 21], "revers": 9, "revert": 23, "review": [12, 15], "revisit": 27, "rgb": 10, "rice": 31, "rich": 8, "richard": 31, "rid": 15, "right": [5, 6, 7, 9, 15, 21, 23, 25, 34], "rint": 30, "rise": 15, "risk": 0, "robert": [2, 15], "rock": 15, "roman": 15, "romeo": 9, "room": 9, "root": 25, "row": [7, 18, 29, 30, 32], "rule": [6, 8, 11, 17], "run": [1, 3, 5, 6, 8, 10, 11, 12, 20, 21, 22, 23, 26, 27, 28, 30], "runtim": [9, 10], "russia": 15, "russian": 15, "sa": 15, "safe": [9, 31], "sai": [6, 7, 15, 25], "salli": 31, "same": [2, 5, 6, 8, 9, 11, 21, 24, 29, 30, 31, 32, 34], "sampl": 4, "san": 15, "save": [22, 23, 25, 30], "savil": 15, "saw": 31, "scenario": [9, 31], "scene": 15, "scienc": [6, 19], "scikitlearn": 34, "scipt": 11, "scissor": 24, "scope": 15, "scratch": 17, "screen": 25, "script": [6, 13, 23, 28], "scroll": 25, "se": 0, "sea": 15, "search": [15, 23], "season": 10, "sec": 6, "second": [5, 6, 7, 9, 10, 11, 13, 15, 23], "secret": 11, "secret_numb": 11, "section": [5, 12, 22, 23, 24], "secur": 23, "see": [0, 1, 2, 3, 4, 6, 7, 8, 9, 12, 15, 17, 20, 21, 23, 24, 25, 28, 29, 30, 31, 32], "seealso": 0, "seed": 4, "seem": [5, 16, 17, 34], "seen": [6, 8, 31], "select": [6, 9, 18, 23, 24, 25, 29, 30, 32], "selector": 31, "self": [6, 8, 25], "sell": 25, "selma": 31, "semant": 27, "semest": 7, "sens": [5, 6, 7, 8, 15, 25, 32], "sensit": 25, "sentenc": 8, "separ": [6, 7, 9, 18, 28, 30], "sequenc": [5, 10, 17, 18], "seri": [6, 17, 25, 33], "seriou": 0, "serv": 2, "servant": 15, "server": 23, "servic": [21, 23], "session": 25, "set": [5, 6, 7, 9, 10, 11, 15, 17, 18, 23, 24, 25, 26, 29, 30, 33], "set_opt": 30, "settingwithcopywarn": 31, "sever": [0, 11, 25, 26, 33], "sex": [29, 30, 31, 32, 33], "shakespear": 15, "shape": [18, 29, 31], "share": 11, "shatter": 15, "she": 5, "shell": 28, "shellei": 15, "shift": [23, 24, 27], "short": [5, 6, 11, 13, 17], "shortcut": [23, 32], "shorten": 9, "should": [1, 3, 7, 10, 11, 20, 25, 27, 30, 34], "shoulder": [1, 27], "show": [2, 3, 6, 8, 10, 15, 23, 30, 33], "shown": [5, 9, 25], "shut": [8, 23], "shutdown": 23, "sibsp": [30, 31, 32], "side": [0, 5, 9, 25, 31], "sidebar": [20, 23], "sign": [1, 4, 6, 7, 15, 24, 27], "signal": 10, "similar": [0, 2, 9, 11, 12, 29], "similarli": 31, "similiar": 11, "simpl": [2, 6, 8, 9, 10, 11, 18, 26, 30, 31, 33], "simpler": [8, 33], "simpli": [10, 25], "simplifi": [18, 28, 29], "simultan": 31, "sin": 15, "sinc": [7, 8, 11, 32], "singl": [6, 7, 9, 17, 18, 23, 31], "single_lett": 10, "site": 15, "situat": [8, 24], "six": 15, "size": [9, 32], "skew": 32, "skill": 11, "skip": [25, 30], "skrevet": 15, "skull": 15, "slight": 2, "slightli": [8, 25], "slither": 25, "slow": [9, 11, 25], "small": [2, 13, 15, 17], "smaller": [8, 11, 17], "smallest": 8, "smart": 15, "smith": 10, "smooth": 25, "sm\u00e5t": 15, "snake": 6, "so": [0, 1, 3, 5, 6, 7, 9, 10, 11, 12, 15, 17, 21, 23, 25, 26, 27, 28, 30], "social": 6, "softwar": [17, 25, 29], "solv": [0, 6, 8, 11, 15, 25], "some": [2, 4, 5, 6, 7, 9, 10, 11, 15, 17, 19, 25, 26, 31, 34], "someon": 6, "someth": [0, 6, 10, 11, 17, 25, 29], "sometim": [6, 25], "song": 9, "sort": [15, 33], "sort_index": 33, "soton": 31, "soul": 15, "sourc": [6, 8, 20, 21, 27, 30], "southern": 15, "space": [5, 6, 10, 11, 15, 17, 23, 25], "span": 2, "special": [0, 2, 5, 6, 8, 15, 18, 31], "specif": [2, 7, 9, 11, 17, 18, 23, 30, 32, 33], "specifi": [5, 8, 9, 10, 17, 29, 30, 33], "speed": 11, "spell": 8, "sphinx": 2, "split": 32, "spoke": 8, "spotlight": 23, "spreadsheet": [7, 29, 30, 34], "spring": 10, "squar": [5, 6, 7, 9, 24, 31], "ssl": 25, "st": 15, "stabl": 0, "stackoverflow": 19, "staff": 25, "stai": 11, "stand": [1, 2, 15, 17, 18, 27], "standard": [0, 6, 7], "start": [0, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 23, 26, 29, 31, 33], "starter": 2, "state": [4, 5, 10, 23, 24], "statement": [6, 8, 9, 18, 28, 29], "statist": 34, "std": 32, "steadi": 15, "steder": 15, "step": [10, 11, 24, 32], "still": [6, 7, 10, 28], "stitch": 15, "ston": [30, 31, 32], "stone": [9, 31], "stop": [5, 6, 9, 11, 15, 17, 23], "storag": [6, 9, 32], "store": [2, 7, 9, 17, 18, 25, 29, 30], "stori": 15, "storm": 15, "stort": 15, "str": [5, 7, 8, 9], "strang": 15, "strengthen": 6, "stride": 9, "string": [11, 15, 29, 30], "strip": 15, "strong": [11, 15], "strongli": 10, "structur": [2, 9, 11, 17, 18, 29, 30, 32], "student": [1, 25, 26], "stuff": 25, "style": 0, "subfold": [30, 34], "subplot": 4, "subscript": 6, "subselect": 32, "subsequ": 23, "subset": [30, 32, 34], "substr": 5, "subtract": [8, 17], "succesfulli": 25, "success": 24, "suddenli": 15, "suggest": [0, 19, 20, 21], "sum": [5, 30, 32], "summari": [30, 34], "summaris": 32, "summer": 10, "sundai": 15, "super": 15, "support": [3, 8, 9, 30, 32, 33], "suppos": 11, "sure": [1, 4, 11, 25, 26, 27, 28], "surround": [5, 17], "surveil": 25, "surviv": [30, 31, 32], "sutehal": 31, "swap": [18, 29], "sweat": 11, "switz": 15, "symbol": [6, 15, 17], "syntax": [0, 2, 5, 9, 18, 28, 29, 31], "syntaxerror": 8, "system": [11, 25], "s\u00e5": [0, 15], "t": [2, 4, 5, 6, 7, 8, 9, 11, 15, 16, 25, 32], "tab": [10, 11, 17, 23, 25], "tabl": [6, 10, 18, 32], "tabular": [18, 31, 34], "tailor": 34, "take": [0, 5, 6, 8, 9, 10, 11, 13, 15, 17, 21, 25, 34], "taken": 11, "tale": 15, "talk": 6, "tap": 23, "task": [10, 15, 17, 24, 31], "taught": 7, "teach": [1, 7, 15, 27, 34], "technic": [25, 31], "technologi": 19, "tediou": 25, "tekstern": 15, "tell": [5, 8, 10, 25, 31], "temperatur": 9, "temperature_001": 9, "temperature_002": 9, "temporari": 6, "tempt": 6, "temptat": 6, "ten": 7, "tendenc": 15, "term": [6, 8, 9, 15, 16, 25], "termin": [23, 28], "terminologi": 16, "terribl": 15, "test": [7, 15], "tester": 15, "tex": 4, "text": [2, 3, 5, 6, 7, 15, 17, 18, 23, 24, 29], "text_end": 15, "text_start": 15, "th": [15, 30, 31, 32], "than": [5, 6, 7, 8, 10, 11, 25, 30, 31, 32], "thank": [1, 27], "thei": [2, 5, 7, 8, 9, 10, 11, 15, 25, 31, 33], "them": [5, 6, 8, 9, 10, 11, 12, 17, 23, 24, 25, 26, 31, 32], "therefor": [5, 9], "thermomet": 9, "thi": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 15, 16, 17, 18, 22, 23, 24, 25, 26, 28, 29, 30, 31, 32, 33, 34], "thing": [3, 5, 6, 10, 11, 15, 19], "think": [6, 7, 10, 17, 20, 31], "third": [7, 9, 10, 25], "thoma": [15, 31], "those": [2, 6, 31, 34], "though": [5, 28, 30], "three": [6, 7, 20, 25, 29, 30, 32], "through": [10, 11, 12, 16, 22, 25, 28, 31, 33], "throw": 7, "thu": [5, 6, 8, 9, 11], "thunderstorm": 15, "thursdai": 15, "ti": 9, "ticket": [30, 31, 32], "till": 11, "time": [1, 5, 7, 9, 10, 11, 15, 17, 23, 25, 27, 31, 32], "timothi": 31, "tin": [8, 9], "tini": 6, "tip": [0, 22, 24], "tire": 6, "titan": [31, 32, 33], "titl": [29, 33], "tjekk": 15, "to_": 30, "to_excel": 30, "todai": 15, "togeth": [1, 5, 9, 15, 17, 25, 27, 28, 32], "toggl": 20, "too": [6, 11, 30], "took": 11, "tool": [2, 15, 17, 25, 31, 33], "toolbar": [20, 21, 23, 24], "top": [3, 11, 20, 21, 23, 24, 28], "topic": 13, "torpor": 15, "tot_sec": 6, "total": [10, 30, 31], "total_second": 6, "tow": 15, "trace": [6, 8, 11], "traceback": [6, 7, 8, 9, 10], "track": 10, "trackpad": 23, "tradit": 7, "train": [30, 34], "travers": 9, "treat": [3, 5, 6, 32], "trigger": 31, "troubl": [19, 25], "true": [5, 6, 15, 17, 30, 31, 32], "true_upper_cas": 15, "truncat": 30, "truth": [5, 17], "try": [6, 7, 8, 10, 11, 15, 25, 27], "tupl": [29, 30, 31], "turk": 15, "turkish": 15, "turn": [11, 24], "tutori": 32, "twice": [8, 15, 24], "two": [1, 2, 3, 5, 7, 8, 9, 11, 15, 17, 23, 24, 25, 27, 29, 30, 31, 32], "txt": 15, "type": [0, 6, 8, 10, 11, 12, 18, 23, 24, 25, 29, 30, 31, 32, 33], "typecast": 7, "typeerror": [6, 7, 8, 9], "typic": [0, 6, 8, 15, 17, 18, 29, 31, 32], "u": [1, 6, 8, 11, 15, 20, 27, 30, 31], "ucph": 17, "unchang": [5, 17], "uncheck": 24, "uncl": 15, "uncouth": 15, "undefin": 18, "under": [12, 15, 23, 25], "underneath": 5, "underscor": [6, 15], "understand": [0, 3, 5, 6, 8, 10, 11, 13, 15, 16, 17, 22, 26, 29, 30, 31, 33], "undo": 23, "unexpect": [8, 10, 11, 31], "unfamiliar": 16, "unintend": 31, "uniqu": 18, "univers": [1, 5, 25, 26, 27], "unknown": 30, "unlik": [6, 25], "unlimit": 15, "unnest": [10, 11], "unreason": 7, "unsupport": 7, "unsur": 23, "untermin": 8, "until": [6, 8, 10, 11, 15, 17, 25], "up": [1, 5, 7, 8, 9, 10, 11, 24, 25, 27], "updat": [7, 10, 25, 28, 29], "upload": [23, 25], "upper": [6, 8], "upper_case_word": 15, "uppercas": 15, "upward": 24, "urg": 25, "url": [15, 23], "urllib": 15, "urlopen": 15, "us": [0, 2, 3, 5, 8, 9, 12, 15, 17, 18, 19, 22, 23, 24, 26, 28, 29, 30, 32, 33, 34], "usag": 31, "user": [11, 22, 25], "user_guess": 11, "user_input": 11, "usual": [6, 7, 8, 11, 17, 32], "utf": 15, "util": [23, 25], "uw": 21, "u\u00e6gt": 15, "v": 33, "vagabond": 15, "valu": [5, 10, 11, 17, 18, 29, 32], "valuabl": 7, "value_count": [32, 33], "valueerror": 7, "vander": 31, "vari": [5, 8], "variabl": [5, 8, 9, 11, 12, 25, 30, 32], "variat": 2, "varieti": 33, "variou": [8, 11, 24, 29, 30, 33, 34], "ve": [15, 16, 31], "ved": 15, "veri": [0, 10, 12, 15, 29, 30], "version": [15, 21, 23, 28, 34], "versu": 32, "vertic": 33, "via": 28, "victor": 31, "view": [7, 23, 29, 30], "vil": 15, "villag": 15, "violat": 8, "violent": 15, "vise": 0, "visit": [1, 8, 22, 27], "visualis": 34, "v\u00e6re": 15, "w": [30, 31, 32], "w3school": 15, "wa": [9, 10, 15, 20, 21, 23, 27], "wai": [5, 6, 7, 8, 11, 12, 15, 17, 18, 26, 27, 28, 29, 31, 33], "walk": 25, "walsh": [1, 7, 27], "walton": 15, "want": [4, 6, 8, 10, 11, 15, 23, 24, 25, 28, 30, 31, 33], "warn": [0, 31], "watch": 15, "wauw": 11, "we": [1, 5, 6, 7, 8, 9, 10, 11, 12, 15, 16, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34], "wear": 6, "web": [19, 23], "webpag": 20, "websit": [15, 19, 25], "week": 15, "welcom": [11, 26], "well": [1, 4, 6, 7, 8, 13, 25, 27, 32], "wendi": 2, "were": [6, 10, 11, 15, 25], "whale": 10, "what": [5, 6, 10, 15, 17, 20, 25, 29, 32], "wheadon": 31, "when": [2, 3, 6, 9, 10, 15, 16, 17, 19, 23, 24, 25, 28, 29], "whenev": 16, "where": [0, 6, 7, 8, 9, 10, 11, 15, 17, 18, 23, 24, 25, 28, 29, 30, 31, 34], "wherea": [2, 29, 31, 32], "whether": [2, 5, 17, 22, 24, 25, 29, 30, 33], "which": [3, 5, 6, 7, 8, 9, 10, 11, 12, 15, 17, 24, 25, 28, 29, 30, 31, 33, 34], "while": [5, 6, 8, 9, 15, 17, 23, 24, 25, 29, 31], "white": 15, "who": [6, 25], "whole": [5, 7, 9, 10, 15, 17, 30], "whose": [1, 15, 17, 27, 30], "why": [5, 6, 7, 9, 15, 31], "wide": [18, 28, 29, 33, 34], "widespread": 15, "widow": 15, "wikipedia": 27, "wil": 7, "william": [30, 31, 32], "wilson": 31, "win": 25, "window": [24, 28], "winter": 10, "wish": [25, 26], "within": [9, 11, 17, 23, 24, 29, 30, 31, 32], "without": [6, 9, 10, 11, 17, 21, 24, 29, 30, 31, 32, 33], "wollstonecraft": 15, "won": 6, "wonder": 5, "word": [6, 8, 10, 15, 30, 34], "work": [1, 4, 5, 6, 7, 11, 12, 15, 17, 20, 21, 22, 23, 24, 25, 26, 27, 28, 31, 34], "workflow": [22, 24], "workshop": 15, "workspac": 22, "world": [7, 8, 17, 33], "worri": [6, 25, 30], "would": [0, 5, 6, 7, 9, 10, 11, 20, 21, 29, 31, 32], "wrap": [6, 24, 27], "wreck": 15, "wretch": 15, "write": [0, 2, 3, 6, 7, 8, 9, 10, 11, 13, 15, 17, 24, 25, 31, 34], "written": [2, 3, 7, 11, 15, 17, 30, 34], "wrong": [8, 11], "www": 15, "x": [5, 6, 9, 17, 25, 33], "x_column": 33, "xlabel": 33, "xlsx": 30, "y": [5, 6, 9, 15, 33], "y_column": 33, "year": [6, 7], "yesterdai": 15, "yet": [6, 16], "yield": 32, "ylabel": 33, "you": [0, 1, 2, 3, 4, 7, 8, 9, 10, 11, 12, 13, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 27, 28, 29, 30, 31, 32, 33, 34], "your": [1, 2, 3, 4, 5, 6, 8, 10, 11, 12, 15, 17, 19, 20, 21, 22, 23, 24, 26, 27, 30, 31, 32, 33, 34], "your_vari": 7, "yourself": 6, "z": 8, "zero": [5, 7, 8, 9, 10, 11, 17, 24], "zeroth": 9, "\u00e6gte": 15}, "titles": ["Admonition Boxes", "Welcome", "Markdown Files", "Notebooks with MyST Markdown", "Content with notebooks", "Data Types", "Variables and Assignment", "Data Types and Type Conversion", "Built-in Functions and Help", "Lists", "For Loops", "Conditionals", "Part 1", "Part 2", "2024 Open Data Science", "RegEx and Frankenstein", "Learn All the New Words", "Dictionary for Absolute Beginners", "Dictionary for Pandas", "Get Help and Find Documentation", "Interact With This Book", "How to Interact With This Book", "Get Started with JupyterLab", "Open and Navigate JupyterLab", "Code in JupyterLab", "Install & Run Python", "Sign Up for a Course", "Welcome", "Getting Started with Pandas", "Pandas DataFrame", "Read and Write Tabular Data", "Subsets", "Summary Statistics", "Basic Visualisations in Pandas", "Getting Started with Data Analysis"], "titleterms": {"1": [6, 7, 8, 9, 10, 11, 12, 23, 25], "2": [6, 7, 8, 9, 10, 11, 13, 23, 25], "2024": 14, "3": [6, 7, 8, 9, 10, 11, 25], "4": [6, 7, 8, 9, 10, 11], "5": [6, 7, 9, 10], "6": [7, 9, 10], "7": [9, 10], "8": 9, "A": [11, 15, 30, 33], "For": [10, 23], "The": [5, 8, 11, 33], "With": [20, 21], "about": 26, "abov": 11, "absolut": 17, "accumul": 10, "ad": 7, "add": [3, 25], "addit": 11, "admonit": 0, "aggreg": 32, "all": 16, "along": 15, "alt": 0, "ambigu": 31, "an": [0, 3, 11], "analys": 11, "analysi": 34, "andetst": 0, "anoth": 25, "append": [9, 17, 29], "appl": [23, 25], "ar": [6, 9, 11, 26, 31], "argument": [8, 17], "aria": [1, 20, 21, 23, 25, 27], "arithmet": 17, "assign": [6, 7, 17], "attend": 26, "attribut": [1, 18, 27, 29], "auto": 24, "automat": 7, "avoid": 31, "b": 15, "back": 9, "bar": [20, 33], "base": [29, 31], "basic": 33, "befor": [6, 26], "beginn": 17, "between": [6, 9], "beyond": 9, "blank": [9, 10, 11], "block": [4, 11], "book": [0, 20, 21], "boolean": [5, 17], "both": [23, 25], "box": 0, "bracket": [15, 24], "built": [5, 8], "calcul": 6, "call": 31, "can": [5, 6, 7], "case": 6, "categor": 32, "categori": 32, "cell": [3, 6, 24], "certain": 8, "chang": [7, 9], "charact": [8, 9], "chart": 33, "check": 25, "choos": [6, 7], "citat": 2, "class": [0, 1, 6, 7, 8, 9, 10, 11, 20, 21, 23, 25, 27, 29, 30], "classifi": 10, "click": [20, 21, 25], "close": 24, "cloud": 21, "code": [4, 5, 11, 20, 21, 24], "colab": 25, "column": [29, 30, 31], "combin": 31, "command": 24, "comment": [8, 17], "common": [0, 1, 23, 27], "comparison": 5, "complex": 31, "compound": 11, "concaten": [5, 17], "condit": [11, 17, 31], "contain": 9, "content": [4, 12, 13, 16, 22, 34], "control": [7, 11], "convent": 6, "convers": 7, "copi": 9, "correctli": 25, "count": 32, "cours": [26, 27], "creat": [3, 6, 24, 29, 30, 31, 32], "creativ": [1, 27], "csv": [18, 30, 31, 32], "cumul": 10, "curli": 15, "current": 30, "customis": 33, "data": [5, 7, 9, 14, 17, 29, 30, 32, 34], "datafram": [18, 29, 30, 31, 32], "deal": 7, "default": 8, "delet": [9, 24], "den": 0, "dereft": 0, "descript": 32, "develop": 17, "dice": 11, "dictionari": [17, 18, 29], "did": 25, "differ": [7, 8, 9], "direct": 2, "directori": [23, 30], "displai": 6, "divis": 7, "do": 7, "document": [8, 17, 19], "doe": 11, "doubl": 5, "doubt": 26, "download": [20, 21, 25, 30, 34], "dtype": 30, "edit": 24, "elif": 11, "els": 11, "empti": 9, "end": 9, "environ": 17, "equal": 5, "er": 0, "erda": 25, "error": [8, 10], "everi": 8, "exactli": 31, "exampl": [0, 3, 11, 33], "excel": 30, "exclus": 31, "execut": [10, 11], "exercis": [6, 7, 8, 9, 10, 11, 29, 30], "exist": 29, "expand": [20, 21], "expon": 5, "express": 31, "fa": [1, 6, 7, 8, 9, 10, 11, 20, 21, 23, 25, 27, 29, 30], "fab": [1, 20, 21, 23, 25, 27], "file": [2, 15, 23, 30, 31, 32], "fill": [9, 10, 11], "filter": [30, 31], "find": [6, 19], "first": 29, "float": [5, 7, 17], "fra": 0, "frankenstein": 15, "freeli": 7, "from": [9, 28, 30, 31, 32], "full": [20, 21], "function": [5, 8, 11, 17], "fundet": 0, "f\u00f8lger": 0, "f\u00f8rst": 0, "game": 11, "geeksforgeek": 19, "get": [6, 19, 22, 25, 28, 30, 34], "github": [20, 21], "googl": 25, "group": 32, "groupbi": 32, "guess": 11, "handl": 31, "happen": 8, "have": [5, 7, 8], "head": 30, "help": [8, 19], "her": 0, "herund": 0, "hidden": [1, 20, 21, 23, 25, 27], "how": [5, 9, 10, 21, 25], "i": [0, 1, 2, 6, 7, 8, 9, 10, 11, 20, 21, 23, 25, 27, 29, 30], "id": 17, "identifi": 10, "iloc": 31, "immut": [9, 17], "impact": 11, "import": [28, 29, 30, 31, 32], "inclus": 31, "indent": 17, "index": [5, 6, 9, 17, 18, 31], "infinit": 11, "info": 30, "inform": 30, "input": 11, "insid": [5, 11], "instal": [25, 28], "integ": [5, 6, 7, 17], "integr": 17, "interact": [20, 21], "introduc": 31, "isna": 30, "issu": [20, 21], "item": [9, 10], "jupyt": [0, 20, 21], "jupyterlab": [22, 23, 24, 25], "kei": [5, 6, 7, 8, 9, 10, 11, 29, 30, 31, 32, 33], "kernel": 24, "keyboard": 24, "kind": 7, "kode": 0, "larg": 9, "last": 8, "learn": [2, 5, 6, 7, 8, 9, 10, 11, 16, 29, 30, 31, 32, 33], "length": [6, 7], "librari": 17, "limit": 6, "list": [9, 15], "loc": 31, "look": 25, "loop": [10, 11, 17], "mac": 25, "maco": [23, 25], "mai": 9, "make": [20, 21], "manag": 24, "mark": [5, 15], "markdown": [0, 2, 3, 4], "mathemat": 5, "max": 8, "meaning": 6, "media": 11, "memori": 30, "messag": 8, "metacharact": 15, "metadata": 3, "method": [5, 9, 25], "min": 8, "miss": 31, "mix": 7, "mode": 24, "modulenotfounderror": 28, "modulu": 5, "more": [2, 15], "move": 24, "multipl": [5, 10, 31], "must": 6, "mutabl": [9, 17], "my": 0, "myst": [2, 3, 4], "name": [6, 10], "nan": 18, "navig": 23, "new": [16, 29], "note": [11, 30, 33], "notebook": [3, 4, 20, 21], "notic": [9, 11], "notna": 30, "number": [7, 11, 32], "object": [5, 6, 7, 8, 9, 10, 11, 29, 30, 31, 32, 33], "off": 6, "offici": [19, 25], "often": 11, "onc": 11, "onli": [7, 8], "open": [14, 20, 21, 23, 25], "oper": [5, 7, 17, 31, 32], "option": 24, "order": 11, "our": [27, 29], "output": [4, 20, 21], "overwrit": 9, "own": 29, "panda": [18, 19, 28, 29, 30, 31, 32, 33], "paramet": 33, "part": [12, 13], "path": 25, "pd": [18, 29], "pdf": [20, 21], "pencil": [6, 7, 8, 9, 10, 11, 29, 30], "persist": 6, "pie": 33, "pip": 25, "pipe": 15, "plai": 20, "plot": 33, "point": [5, 6, 7, 8, 9, 10, 11, 29, 30, 31, 32, 33], "posit": 31, "powershel": 25, "predict": 6, "print": [6, 11], "problem": 11, "program": 11, "pypi": 28, "python": [6, 19, 25], "question": 15, "quickli": 3, "quotat": 5, "rang": 10, "rather": 25, "read": [15, 30], "recap": 7, "record": 32, "regex": 15, "renam": 29, "rendered": 0, "replac": 9, "represent": 29, "restart": 24, "return": 8, "revers": 10, "rocket": 21, "role": 2, "round": 8, "row": 31, "run": [24, 25], "runtim": 8, "sampl": 2, "scatter": 33, "scienc": 14, "screen": [20, 21], "script": 11, "select": 31, "sensit": 6, "seri": [18, 29, 31], "shape": 30, "shortcut": 24, "show": [20, 21], "sign": [5, 26], "simplest": 25, "singl": 5, "slice": [5, 6, 9, 17, 31], "social": 11, "solid": [6, 7, 8, 9, 10, 11, 29, 30], "solut": [6, 7, 8, 9, 10, 11, 29, 30], "some": 8, "someth": [7, 8], "sort": 9, "specif": 31, "specifi": 11, "spot": 8, "squar": 15, "start": [22, 25, 28, 34], "statement": [10, 11, 17], "statist": 32, "step": [9, 23, 25], "store": 6, "string": [5, 6, 7, 8, 9, 10, 17], "structur": 10, "student": 7, "subset": [18, 31], "substr": 6, "sum": 10, "summari": 32, "swap": 6, "syntax": [8, 10, 11, 17, 33], "system": 23, "tabl": [5, 9, 29], "tabular": 30, "tail": 30, "termin": 25, "test": [0, 11], "thei": 6, "them": 7, "thi": [0, 11, 20, 21], "through": 9, "til": 0, "ting": 0, "tip": 23, "titan": [30, 34], "titl": 0, "todo": 0, "trace": 10, "transpos": [18, 29], "true": [1, 11, 20, 21, 23, 25, 27], "type": [5, 7, 9, 17], "up": 26, "upgrad": 28, "us": [6, 7, 10, 11, 25, 31], "usag": [30, 33], "user": 23, "v": [24, 31], "valu": [6, 7, 8, 9, 30, 31], "variabl": [6, 7, 10, 17], "version": [0, 25], "visualis": 33, "w": 15, "w3school": 19, "wa": 25, "wai": 25, "welcom": [1, 27], "well": 15, "what": [2, 7, 8, 9, 11, 31], "when": [7, 8, 11, 31], "whether": 11, "which": 26, "while": 11, "why": [8, 29], "window": [23, 25], "word": 16, "work": [8, 9, 10, 30], "workspac": 20, "would": 25, "write": 30, "yaml": 3, "you": [5, 6, 25, 26], "your": 25, "z": 15}}) \ No newline at end of file