From 00afc7b86f3d1a1bb0b07360815cc55cd628e1e0 Mon Sep 17 00:00:00 2001
From: Chanin Nantasenamat <51851491+dataprofessor@users.noreply.github.com>
Date: Sun, 26 Apr 2020 23:34:44 +0700
Subject: [PATCH] Add files via upload
---
python/pandas_styling_dataframe.ipynb | 1227 +++++++++++++++++++++++++
1 file changed, 1227 insertions(+)
create mode 100644 python/pandas_styling_dataframe.ipynb
diff --git a/python/pandas_styling_dataframe.ipynb b/python/pandas_styling_dataframe.ipynb
new file mode 100644
index 0000000..3a5a3a7
--- /dev/null
+++ b/python/pandas_styling_dataframe.ipynb
@@ -0,0 +1,1227 @@
+{
+ "nbformat": 4,
+ "nbformat_minor": 0,
+ "metadata": {
+ "colab": {
+ "name": "pandas-styling-dataframe.ipynb",
+ "provenance": [],
+ "collapsed_sections": []
+ },
+ "kernelspec": {
+ "name": "python3",
+ "display_name": "Python 3"
+ }
+ },
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "sv-w0Hjc07Kt",
+ "colab_type": "text"
+ },
+ "source": [
+ "# **Styling Pandas DataFrame**\n",
+ "\n",
+ "Chanin Nantasenamat\n",
+ "\n",
+ "[Data Professor YouTube channel](http://youtube.com/dataprofessor), http://youtube.com/dataprofessor \n",
+ "\n",
+ "Are you bored of the same old Pandas DataFrame? In this Jupyter notebook, I will be showing you how to style the Pandas DataFrame."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "8-BaSBjopwwe",
+ "colab_type": "text"
+ },
+ "source": [
+ "## **Import library**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "5zqVANQs3TjX",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "import numpy as np\n",
+ "import pandas as pd"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "xQWQ7rFD6Q5O",
+ "colab_type": "text"
+ },
+ "source": [
+ "## **Download and select data**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "YBxo-Z0a3Io7",
+ "colab_type": "code",
+ "outputId": "a03bf877-dc1b-4390-e72d-1ed5be57a70f",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 204
+ }
+ },
+ "source": [
+ "! wget https://raw.githubusercontent.com/dataprofessor/data/master/nba-player-stats-2019.csv"
+ ],
+ "execution_count": 0,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "text": [
+ "--2020-04-25 15:02:48-- https://raw.githubusercontent.com/dataprofessor/data/master/nba-player-stats-2019.csv\n",
+ "Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.0.133, 151.101.64.133, 151.101.128.133, ...\n",
+ "Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|151.101.0.133|:443... connected.\n",
+ "HTTP request sent, awaiting response... 200 OK\n",
+ "Length: 90308 (88K) [text/plain]\n",
+ "Saving to: ‘nba-player-stats-2019.csv’\n",
+ "\n",
+ "\r nba-playe 0%[ ] 0 --.-KB/s \rnba-player-stats-20 100%[===================>] 88.19K --.-KB/s in 0.02s \n",
+ "\n",
+ "2020-04-25 15:02:48 (5.03 MB/s) - ‘nba-player-stats-2019.csv’ saved [90308/90308]\n",
+ "\n"
+ ],
+ "name": "stdout"
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "pUZAIKl231s9",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "df = pd.read_csv('nba-player-stats-2019.csv')\n",
+ "selection = ['Player','Pos','Age','Tm','G','3P%','2P%','FT%','AST','STL','BLK','PTS']"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "q9D_2M1J3M76",
+ "colab_type": "code",
+ "colab": {}
+ },
+ "source": [
+ "df = df[selection]"
+ ],
+ "execution_count": 0,
+ "outputs": []
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "4jnmTmhv1sNA",
+ "colab_type": "text"
+ },
+ "source": [
+ "## **Style pandas table with CSS**\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "7H-8BmYGpae0",
+ "colab_type": "code",
+ "outputId": "000c132c-36b5-4513-b661-daff0ff8581a",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 460
+ }
+ },
+ "source": [
+ "# https://towardsdatascience.com/10-python-pandas-tricks-to-make-data-analysis-more-enjoyable-cb8f55af8c30\n",
+ "\n",
+ "df.head(20).style.set_table_styles(\n",
+ "[{'selector': 'th',\n",
+ " 'props': [('background', '#7CAE00'), \n",
+ " ('color', 'white'),\n",
+ " ('font-family', 'verdana')]},\n",
+ " \n",
+ " {'selector': 'td',\n",
+ " 'props': [('font-family', 'verdana')]},\n",
+ "\n",
+ " {'selector': 'tr:nth-of-type(odd)',\n",
+ " 'props': [('background', '#DCDCDC')]}, \n",
+ " \n",
+ " {'selector': 'tr:nth-of-type(even)',\n",
+ " 'props': [('background', 'white')]},\n",
+ " \n",
+ "]\n",
+ ").hide_index()"
+ ],
+ "execution_count": 0,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "
Player | Pos | Age | Tm | G | 3P% | 2P% | FT% | AST | STL | BLK | PTS |
\n",
+ " \n",
+ " Álex Abrines | \n",
+ " SG | \n",
+ " 25 | \n",
+ " OKC | \n",
+ " 31 | \n",
+ " 0.323000 | \n",
+ " 0.500000 | \n",
+ " 0.923000 | \n",
+ " 0.600000 | \n",
+ " 0.500000 | \n",
+ " 0.200000 | \n",
+ " 5.300000 | \n",
+ "
\n",
+ " \n",
+ " Quincy Acy | \n",
+ " PF | \n",
+ " 28 | \n",
+ " PHO | \n",
+ " 10 | \n",
+ " 0.133000 | \n",
+ " 0.667000 | \n",
+ " 0.700000 | \n",
+ " 0.800000 | \n",
+ " 0.100000 | \n",
+ " 0.400000 | \n",
+ " 1.700000 | \n",
+ "
\n",
+ " \n",
+ " Jaylen Adams | \n",
+ " PG | \n",
+ " 22 | \n",
+ " ATL | \n",
+ " 34 | \n",
+ " 0.338000 | \n",
+ " 0.361000 | \n",
+ " 0.778000 | \n",
+ " 1.900000 | \n",
+ " 0.400000 | \n",
+ " 0.100000 | \n",
+ " 3.200000 | \n",
+ "
\n",
+ " \n",
+ " Steven Adams | \n",
+ " C | \n",
+ " 25 | \n",
+ " OKC | \n",
+ " 80 | \n",
+ " 0.000000 | \n",
+ " 0.596000 | \n",
+ " 0.500000 | \n",
+ " 1.600000 | \n",
+ " 1.500000 | \n",
+ " 1.000000 | \n",
+ " 13.900000 | \n",
+ "
\n",
+ " \n",
+ " Bam Adebayo | \n",
+ " C | \n",
+ " 21 | \n",
+ " MIA | \n",
+ " 82 | \n",
+ " 0.200000 | \n",
+ " 0.588000 | \n",
+ " 0.735000 | \n",
+ " 2.200000 | \n",
+ " 0.900000 | \n",
+ " 0.800000 | \n",
+ " 8.900000 | \n",
+ "
\n",
+ " \n",
+ " Deng Adel | \n",
+ " SF | \n",
+ " 21 | \n",
+ " CLE | \n",
+ " 19 | \n",
+ " 0.261000 | \n",
+ " 0.385000 | \n",
+ " 1.000000 | \n",
+ " 0.300000 | \n",
+ " 0.100000 | \n",
+ " 0.200000 | \n",
+ " 1.700000 | \n",
+ "
\n",
+ " \n",
+ " DeVaughn Akoon-Purcell | \n",
+ " SG | \n",
+ " 25 | \n",
+ " DEN | \n",
+ " 7 | \n",
+ " 0.000000 | \n",
+ " 0.500000 | \n",
+ " 0.500000 | \n",
+ " 0.900000 | \n",
+ " 0.300000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " LaMarcus Aldridge | \n",
+ " C | \n",
+ " 33 | \n",
+ " SAS | \n",
+ " 81 | \n",
+ " 0.238000 | \n",
+ " 0.528000 | \n",
+ " 0.847000 | \n",
+ " 2.400000 | \n",
+ " 0.500000 | \n",
+ " 1.300000 | \n",
+ " 21.300000 | \n",
+ "
\n",
+ " \n",
+ " Rawle Alkins | \n",
+ " SG | \n",
+ " 21 | \n",
+ " CHI | \n",
+ " 10 | \n",
+ " 0.250000 | \n",
+ " 0.370000 | \n",
+ " 0.667000 | \n",
+ " 1.300000 | \n",
+ " 0.100000 | \n",
+ " 0.000000 | \n",
+ " 3.700000 | \n",
+ "
\n",
+ " \n",
+ " Grayson Allen | \n",
+ " SG | \n",
+ " 23 | \n",
+ " UTA | \n",
+ " 38 | \n",
+ " 0.323000 | \n",
+ " 0.443000 | \n",
+ " 0.750000 | \n",
+ " 0.700000 | \n",
+ " 0.200000 | \n",
+ " 0.200000 | \n",
+ " 5.600000 | \n",
+ "
\n",
+ " \n",
+ " Jarrett Allen | \n",
+ " C | \n",
+ " 20 | \n",
+ " BRK | \n",
+ " 80 | \n",
+ " 0.133000 | \n",
+ " 0.629000 | \n",
+ " 0.709000 | \n",
+ " 1.400000 | \n",
+ " 0.500000 | \n",
+ " 1.500000 | \n",
+ " 10.900000 | \n",
+ "
\n",
+ " \n",
+ " Kadeem Allen | \n",
+ " SG | \n",
+ " 26 | \n",
+ " NYK | \n",
+ " 19 | \n",
+ " 0.472000 | \n",
+ " 0.457000 | \n",
+ " 0.778000 | \n",
+ " 4.000000 | \n",
+ " 0.800000 | \n",
+ " 0.200000 | \n",
+ " 9.900000 | \n",
+ "
\n",
+ " \n",
+ " Al-Farouq Aminu | \n",
+ " PF | \n",
+ " 28 | \n",
+ " POR | \n",
+ " 81 | \n",
+ " 0.343000 | \n",
+ " 0.514000 | \n",
+ " 0.867000 | \n",
+ " 1.300000 | \n",
+ " 0.800000 | \n",
+ " 0.400000 | \n",
+ " 9.400000 | \n",
+ "
\n",
+ " \n",
+ " Justin Anderson | \n",
+ " SF | \n",
+ " 25 | \n",
+ " ATL | \n",
+ " 48 | \n",
+ " 0.312000 | \n",
+ " 0.500000 | \n",
+ " 0.743000 | \n",
+ " 0.500000 | \n",
+ " 0.500000 | \n",
+ " 0.300000 | \n",
+ " 3.700000 | \n",
+ "
\n",
+ " \n",
+ " Kyle Anderson | \n",
+ " SF | \n",
+ " 25 | \n",
+ " MEM | \n",
+ " 43 | \n",
+ " 0.265000 | \n",
+ " 0.583000 | \n",
+ " 0.578000 | \n",
+ " 3.000000 | \n",
+ " 1.300000 | \n",
+ " 0.900000 | \n",
+ " 8.000000 | \n",
+ "
\n",
+ " \n",
+ " Ryan Anderson | \n",
+ " PF | \n",
+ " 30 | \n",
+ " TOT | \n",
+ " 25 | \n",
+ " 0.225000 | \n",
+ " 0.414000 | \n",
+ " 0.750000 | \n",
+ " 0.800000 | \n",
+ " 0.200000 | \n",
+ " 0.000000 | \n",
+ " 2.500000 | \n",
+ "
\n",
+ " \n",
+ " Ryan Anderson | \n",
+ " PF | \n",
+ " 30 | \n",
+ " PHO | \n",
+ " 15 | \n",
+ " 0.206000 | \n",
+ " 0.462000 | \n",
+ " 0.786000 | \n",
+ " 1.100000 | \n",
+ " 0.200000 | \n",
+ " 0.100000 | \n",
+ " 3.700000 | \n",
+ "
\n",
+ " \n",
+ " Ryan Anderson | \n",
+ " PF | \n",
+ " 30 | \n",
+ " MIA | \n",
+ " 10 | \n",
+ " 0.333000 | \n",
+ " 0.000000 | \n",
+ " 0.500000 | \n",
+ " 0.200000 | \n",
+ " 0.100000 | \n",
+ " 0.000000 | \n",
+ " 0.700000 | \n",
+ "
\n",
+ " \n",
+ " Ike Anigbogu | \n",
+ " C | \n",
+ " 20 | \n",
+ " IND | \n",
+ " 3 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.300000 | \n",
+ " 0.000000 | \n",
+ " 0.300000 | \n",
+ " 0.000000 | \n",
+ "
\n",
+ " \n",
+ " Giannis Antetokounmpo | \n",
+ " PF | \n",
+ " 24 | \n",
+ " MIL | \n",
+ " 72 | \n",
+ " 0.256000 | \n",
+ " 0.641000 | \n",
+ " 0.729000 | \n",
+ " 5.900000 | \n",
+ " 1.300000 | \n",
+ " 1.500000 | \n",
+ " 27.700000 | \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 69
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "MNetq64A6CZP",
+ "colab_type": "text"
+ },
+ "source": [
+ "## **Adding yellow highlight upon hover**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "hzshPguY5cH7",
+ "colab_type": "code",
+ "outputId": "fb47ced5-b12b-4712-ec32-4a2e7603f95e",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 460
+ }
+ },
+ "source": [
+ "# https://towardsdatascience.com/10-python-pandas-tricks-to-make-data-analysis-more-enjoyable-cb8f55af8c30\n",
+ "\n",
+ "df.head(20).style.set_table_styles(\n",
+ "[{'selector': 'th',\n",
+ " 'props': [('background', '#7CAE00'), \n",
+ " ('color', 'white'),\n",
+ " ('font-family', 'verdana')]},\n",
+ " \n",
+ " {'selector': 'td',\n",
+ " 'props': [('font-family', 'verdana')]},\n",
+ "\n",
+ " {'selector': 'tr:nth-of-type(odd)',\n",
+ " 'props': [('background', '#DCDCDC')]}, \n",
+ " \n",
+ " {'selector': 'tr:nth-of-type(even)',\n",
+ " 'props': [('background', 'white')]},\n",
+ " \n",
+ " {'selector': 'tr:hover',\n",
+ " 'props': [('background-color', 'yellow')]}\n",
+ "\n",
+ "]\n",
+ ").hide_index()"
+ ],
+ "execution_count": 0,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ " Player | Pos | Age | Tm | G | 3P% | 2P% | FT% | AST | STL | BLK | PTS |
\n",
+ " \n",
+ " Álex Abrines | \n",
+ " SG | \n",
+ " 25 | \n",
+ " OKC | \n",
+ " 31 | \n",
+ " 0.323000 | \n",
+ " 0.500000 | \n",
+ " 0.923000 | \n",
+ " 0.600000 | \n",
+ " 0.500000 | \n",
+ " 0.200000 | \n",
+ " 5.300000 | \n",
+ "
\n",
+ " \n",
+ " Quincy Acy | \n",
+ " PF | \n",
+ " 28 | \n",
+ " PHO | \n",
+ " 10 | \n",
+ " 0.133000 | \n",
+ " 0.667000 | \n",
+ " 0.700000 | \n",
+ " 0.800000 | \n",
+ " 0.100000 | \n",
+ " 0.400000 | \n",
+ " 1.700000 | \n",
+ "
\n",
+ " \n",
+ " Jaylen Adams | \n",
+ " PG | \n",
+ " 22 | \n",
+ " ATL | \n",
+ " 34 | \n",
+ " 0.338000 | \n",
+ " 0.361000 | \n",
+ " 0.778000 | \n",
+ " 1.900000 | \n",
+ " 0.400000 | \n",
+ " 0.100000 | \n",
+ " 3.200000 | \n",
+ "
\n",
+ " \n",
+ " Steven Adams | \n",
+ " C | \n",
+ " 25 | \n",
+ " OKC | \n",
+ " 80 | \n",
+ " 0.000000 | \n",
+ " 0.596000 | \n",
+ " 0.500000 | \n",
+ " 1.600000 | \n",
+ " 1.500000 | \n",
+ " 1.000000 | \n",
+ " 13.900000 | \n",
+ "
\n",
+ " \n",
+ " Bam Adebayo | \n",
+ " C | \n",
+ " 21 | \n",
+ " MIA | \n",
+ " 82 | \n",
+ " 0.200000 | \n",
+ " 0.588000 | \n",
+ " 0.735000 | \n",
+ " 2.200000 | \n",
+ " 0.900000 | \n",
+ " 0.800000 | \n",
+ " 8.900000 | \n",
+ "
\n",
+ " \n",
+ " Deng Adel | \n",
+ " SF | \n",
+ " 21 | \n",
+ " CLE | \n",
+ " 19 | \n",
+ " 0.261000 | \n",
+ " 0.385000 | \n",
+ " 1.000000 | \n",
+ " 0.300000 | \n",
+ " 0.100000 | \n",
+ " 0.200000 | \n",
+ " 1.700000 | \n",
+ "
\n",
+ " \n",
+ " DeVaughn Akoon-Purcell | \n",
+ " SG | \n",
+ " 25 | \n",
+ " DEN | \n",
+ " 7 | \n",
+ " 0.000000 | \n",
+ " 0.500000 | \n",
+ " 0.500000 | \n",
+ " 0.900000 | \n",
+ " 0.300000 | \n",
+ " 0.000000 | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " LaMarcus Aldridge | \n",
+ " C | \n",
+ " 33 | \n",
+ " SAS | \n",
+ " 81 | \n",
+ " 0.238000 | \n",
+ " 0.528000 | \n",
+ " 0.847000 | \n",
+ " 2.400000 | \n",
+ " 0.500000 | \n",
+ " 1.300000 | \n",
+ " 21.300000 | \n",
+ "
\n",
+ " \n",
+ " Rawle Alkins | \n",
+ " SG | \n",
+ " 21 | \n",
+ " CHI | \n",
+ " 10 | \n",
+ " 0.250000 | \n",
+ " 0.370000 | \n",
+ " 0.667000 | \n",
+ " 1.300000 | \n",
+ " 0.100000 | \n",
+ " 0.000000 | \n",
+ " 3.700000 | \n",
+ "
\n",
+ " \n",
+ " Grayson Allen | \n",
+ " SG | \n",
+ " 23 | \n",
+ " UTA | \n",
+ " 38 | \n",
+ " 0.323000 | \n",
+ " 0.443000 | \n",
+ " 0.750000 | \n",
+ " 0.700000 | \n",
+ " 0.200000 | \n",
+ " 0.200000 | \n",
+ " 5.600000 | \n",
+ "
\n",
+ " \n",
+ " Jarrett Allen | \n",
+ " C | \n",
+ " 20 | \n",
+ " BRK | \n",
+ " 80 | \n",
+ " 0.133000 | \n",
+ " 0.629000 | \n",
+ " 0.709000 | \n",
+ " 1.400000 | \n",
+ " 0.500000 | \n",
+ " 1.500000 | \n",
+ " 10.900000 | \n",
+ "
\n",
+ " \n",
+ " Kadeem Allen | \n",
+ " SG | \n",
+ " 26 | \n",
+ " NYK | \n",
+ " 19 | \n",
+ " 0.472000 | \n",
+ " 0.457000 | \n",
+ " 0.778000 | \n",
+ " 4.000000 | \n",
+ " 0.800000 | \n",
+ " 0.200000 | \n",
+ " 9.900000 | \n",
+ "
\n",
+ " \n",
+ " Al-Farouq Aminu | \n",
+ " PF | \n",
+ " 28 | \n",
+ " POR | \n",
+ " 81 | \n",
+ " 0.343000 | \n",
+ " 0.514000 | \n",
+ " 0.867000 | \n",
+ " 1.300000 | \n",
+ " 0.800000 | \n",
+ " 0.400000 | \n",
+ " 9.400000 | \n",
+ "
\n",
+ " \n",
+ " Justin Anderson | \n",
+ " SF | \n",
+ " 25 | \n",
+ " ATL | \n",
+ " 48 | \n",
+ " 0.312000 | \n",
+ " 0.500000 | \n",
+ " 0.743000 | \n",
+ " 0.500000 | \n",
+ " 0.500000 | \n",
+ " 0.300000 | \n",
+ " 3.700000 | \n",
+ "
\n",
+ " \n",
+ " Kyle Anderson | \n",
+ " SF | \n",
+ " 25 | \n",
+ " MEM | \n",
+ " 43 | \n",
+ " 0.265000 | \n",
+ " 0.583000 | \n",
+ " 0.578000 | \n",
+ " 3.000000 | \n",
+ " 1.300000 | \n",
+ " 0.900000 | \n",
+ " 8.000000 | \n",
+ "
\n",
+ " \n",
+ " Ryan Anderson | \n",
+ " PF | \n",
+ " 30 | \n",
+ " TOT | \n",
+ " 25 | \n",
+ " 0.225000 | \n",
+ " 0.414000 | \n",
+ " 0.750000 | \n",
+ " 0.800000 | \n",
+ " 0.200000 | \n",
+ " 0.000000 | \n",
+ " 2.500000 | \n",
+ "
\n",
+ " \n",
+ " Ryan Anderson | \n",
+ " PF | \n",
+ " 30 | \n",
+ " PHO | \n",
+ " 15 | \n",
+ " 0.206000 | \n",
+ " 0.462000 | \n",
+ " 0.786000 | \n",
+ " 1.100000 | \n",
+ " 0.200000 | \n",
+ " 0.100000 | \n",
+ " 3.700000 | \n",
+ "
\n",
+ " \n",
+ " Ryan Anderson | \n",
+ " PF | \n",
+ " 30 | \n",
+ " MIA | \n",
+ " 10 | \n",
+ " 0.333000 | \n",
+ " 0.000000 | \n",
+ " 0.500000 | \n",
+ " 0.200000 | \n",
+ " 0.100000 | \n",
+ " 0.000000 | \n",
+ " 0.700000 | \n",
+ "
\n",
+ " \n",
+ " Ike Anigbogu | \n",
+ " C | \n",
+ " 20 | \n",
+ " IND | \n",
+ " 3 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.000000 | \n",
+ " 0.300000 | \n",
+ " 0.000000 | \n",
+ " 0.300000 | \n",
+ " 0.000000 | \n",
+ "
\n",
+ " \n",
+ " Giannis Antetokounmpo | \n",
+ " PF | \n",
+ " 24 | \n",
+ " MIL | \n",
+ " 72 | \n",
+ " 0.256000 | \n",
+ " 0.641000 | \n",
+ " 0.729000 | \n",
+ " 5.900000 | \n",
+ " 1.300000 | \n",
+ " 1.500000 | \n",
+ " 27.700000 | \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 68
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "5gx22aGN7kDE",
+ "colab_type": "text"
+ },
+ "source": [
+ "## **Conditional coloring**"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "0iaxUe2XEIq5",
+ "colab_type": "code",
+ "outputId": "d8b42f5c-2e80-498e-c8ab-08b111c05dff",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 460
+ }
+ },
+ "source": [
+ "def color_red(val):\n",
+ " if val > 20:\n",
+ " color = 'green'\n",
+ " elif val > 5:\n",
+ " color = 'red'\n",
+ " else:\n",
+ " color = 'black'\n",
+ " return 'color: %s' % color\n",
+ "\n",
+ "df[['PTS']].head(20).style.applymap(color_red)"
+ ],
+ "execution_count": 0,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ " | PTS |
\n",
+ " \n",
+ " 0 | \n",
+ " 5.300000 | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " 1.700000 | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " 3.200000 | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " 13.900000 | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " 8.900000 | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " 1.700000 | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " 1.000000 | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " 21.300000 | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " 3.700000 | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " 5.600000 | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " 10.900000 | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " 9.900000 | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " 9.400000 | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " 3.700000 | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " 8.000000 | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " 2.500000 | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " 3.700000 | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " 0.700000 | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " 0.000000 | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " 27.700000 | \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 66
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "metadata": {
+ "id": "yo_O5mJrDLSI",
+ "colab_type": "code",
+ "outputId": "1ba87b07-14de-458e-858e-6b6751548687",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 669
+ }
+ },
+ "source": [
+ "df[['Player','Pos','Tm']].head(20)"
+ ],
+ "execution_count": 0,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " Player | \n",
+ " Pos | \n",
+ " Tm | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " 0 | \n",
+ " Álex Abrines | \n",
+ " SG | \n",
+ " OKC | \n",
+ "
\n",
+ " \n",
+ " 1 | \n",
+ " Quincy Acy | \n",
+ " PF | \n",
+ " PHO | \n",
+ "
\n",
+ " \n",
+ " 2 | \n",
+ " Jaylen Adams | \n",
+ " PG | \n",
+ " ATL | \n",
+ "
\n",
+ " \n",
+ " 3 | \n",
+ " Steven Adams | \n",
+ " C | \n",
+ " OKC | \n",
+ "
\n",
+ " \n",
+ " 4 | \n",
+ " Bam Adebayo | \n",
+ " C | \n",
+ " MIA | \n",
+ "
\n",
+ " \n",
+ " 5 | \n",
+ " Deng Adel | \n",
+ " SF | \n",
+ " CLE | \n",
+ "
\n",
+ " \n",
+ " 6 | \n",
+ " DeVaughn Akoon-Purcell | \n",
+ " SG | \n",
+ " DEN | \n",
+ "
\n",
+ " \n",
+ " 7 | \n",
+ " LaMarcus Aldridge | \n",
+ " C | \n",
+ " SAS | \n",
+ "
\n",
+ " \n",
+ " 8 | \n",
+ " Rawle Alkins | \n",
+ " SG | \n",
+ " CHI | \n",
+ "
\n",
+ " \n",
+ " 9 | \n",
+ " Grayson Allen | \n",
+ " SG | \n",
+ " UTA | \n",
+ "
\n",
+ " \n",
+ " 10 | \n",
+ " Jarrett Allen | \n",
+ " C | \n",
+ " BRK | \n",
+ "
\n",
+ " \n",
+ " 11 | \n",
+ " Kadeem Allen | \n",
+ " SG | \n",
+ " NYK | \n",
+ "
\n",
+ " \n",
+ " 12 | \n",
+ " Al-Farouq Aminu | \n",
+ " PF | \n",
+ " POR | \n",
+ "
\n",
+ " \n",
+ " 13 | \n",
+ " Justin Anderson | \n",
+ " SF | \n",
+ " ATL | \n",
+ "
\n",
+ " \n",
+ " 14 | \n",
+ " Kyle Anderson | \n",
+ " SF | \n",
+ " MEM | \n",
+ "
\n",
+ " \n",
+ " 15 | \n",
+ " Ryan Anderson | \n",
+ " PF | \n",
+ " TOT | \n",
+ "
\n",
+ " \n",
+ " 16 | \n",
+ " Ryan Anderson | \n",
+ " PF | \n",
+ " PHO | \n",
+ "
\n",
+ " \n",
+ " 17 | \n",
+ " Ryan Anderson | \n",
+ " PF | \n",
+ " MIA | \n",
+ "
\n",
+ " \n",
+ " 18 | \n",
+ " Ike Anigbogu | \n",
+ " C | \n",
+ " IND | \n",
+ "
\n",
+ " \n",
+ " 19 | \n",
+ " Giannis Antetokounmpo | \n",
+ " PF | \n",
+ " MIL | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " Player Pos Tm\n",
+ "0 Álex Abrines SG OKC\n",
+ "1 Quincy Acy PF PHO\n",
+ "2 Jaylen Adams PG ATL\n",
+ "3 Steven Adams C OKC\n",
+ "4 Bam Adebayo C MIA\n",
+ "5 Deng Adel SF CLE\n",
+ "6 DeVaughn Akoon-Purcell SG DEN\n",
+ "7 LaMarcus Aldridge C SAS\n",
+ "8 Rawle Alkins SG CHI\n",
+ "9 Grayson Allen SG UTA\n",
+ "10 Jarrett Allen C BRK\n",
+ "11 Kadeem Allen SG NYK\n",
+ "12 Al-Farouq Aminu PF POR\n",
+ "13 Justin Anderson SF ATL\n",
+ "14 Kyle Anderson SF MEM\n",
+ "15 Ryan Anderson PF TOT\n",
+ "16 Ryan Anderson PF PHO\n",
+ "17 Ryan Anderson PF MIA\n",
+ "18 Ike Anigbogu C IND\n",
+ "19 Giannis Antetokounmpo PF MIL"
+ ]
+ },
+ "metadata": {
+ "tags": []
+ },
+ "execution_count": 67
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "zaMIlbehrgWL",
+ "colab_type": "text"
+ },
+ "source": [
+ "## **Further reading**\n",
+ "- Shiu-Tang Li.\n",
+ "[10 Python Pandas tips to make data analysis faster](https://towardsdatascience.com/10-python-pandas-tricks-to-make-data-analysis-more-enjoyable-cb8f55af8c30), 2019.\n",
+ "- [HTML Color Codes](https://htmlcolorcodes.com/). (Note: This website is awesome for visualizing the colors of hex color codes as well as choosing color variants)."
+ ]
+ }
+ ]
+}
\ No newline at end of file