{ "cells": [ { "cell_type": "markdown", "metadata": { "raw_mimetype": "text/markdown", "tags": [] }, "source": [ "# 整然データ\n", "\n", "pandasでデータを扱う際には整然データであることが望ましいです。本節では整然データの概要および、DataFrameを整然データに整形する方法を紹介します。\n", "\n", "## 整然データとは\n", "\n", "整然データ (Tidy Data)とは次の要件を満たすデータです。\n", "\n", "1. 各変数が1つの列で構成されている\n", "2. 各観測が1つの行で構成されている\n", "3. 観測単位が1つの表で構成されている\n", "\n", "> Wickham, Hadley (20 February 2013). \"Tidy Data\" https://www.jstatsoft.org/article/view/v059i10 Tidy Data in Python https://www.jeannicholashould.com/tidy-data-in-python.html\n", "\n", "雑然データ(Messy Data)とは整然データの要件を満たさないデータです。整然データと雑然データの例として、1月1日から1月3日の各都市の平均気温データを扱います。\n", "\n", "![整然データと雑然データ](./images/tidy_messy.png)\n", "\n", "次のように、雑然データでは1つの列に日付と気温の2つの変数で構成されているのに対して、整然データでは各列が1つの変数で構成されているのが確認できます。\n", "\n", "![列の構成](./images/columns.png)\n", "\n", "次のように、雑然データでは各行が複数の日付で構成(観測単位が複数)されているのに対して、整然データでは各列が1つの観測で構成されているのが確認できます。\n", "\n", "![行の構成](./images/row.png)" ] }, { "cell_type": "markdown", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "## 雑然データから整然データへの変換\n", "\n", "ここでは次のような雑然データを整然データに変換する手順を解説します。" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "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", "
Location2020-01-01 00:00:002020-01-02 00:00:002020-01-03 00:00:00
0Tokyo5.85.75.6
1Osaka6.86.76.6
2Nagoya5.15.15.0
\n", "
" ], "text/plain": [ " Location 2020-01-01 00:00:00 2020-01-02 00:00:00 2020-01-03 00:00:00\n", "0 Tokyo 5.8 5.7 5.6\n", "1 Osaka 6.8 6.7 6.6\n", "2 Nagoya 5.1 5.1 5.0" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "import datetime\n", "\n", "import pandas as pd\n", "\n", "wide_df = pd.DataFrame(\n", " [\n", " [\"Tokyo\", 5.8, 5.7, 5.6],\n", " [\"Osaka\", 6.8, 6.7, 6.6],\n", " [\"Nagoya\", 5.1, 5.1, 5.0],\n", " ],\n", " columns=[\"Location\"] + pd.date_range(\"2020-01-01\", periods=3).tolist(),\n", ")\n", "wide_df" ] }, { "cell_type": "markdown", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "DataFrameの ``melt`` メソッドを実行すると、整然データへの変換が行えます。次のような引数を渡します。\n", "\n", "- id_vars: 基本となる列名を指定\n", "- var_name: 変数となる列名を指定\n", "- value_name: 値となる列名を指定" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "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", "
LocationDateTemperature
0Tokyo2020-01-015.8
1Osaka2020-01-016.8
2Nagoya2020-01-015.1
3Tokyo2020-01-025.7
4Osaka2020-01-026.7
5Nagoya2020-01-025.1
6Tokyo2020-01-035.6
7Osaka2020-01-036.6
8Nagoya2020-01-035.0
\n", "
" ], "text/plain": [ " Location Date Temperature\n", "0 Tokyo 2020-01-01 5.8\n", "1 Osaka 2020-01-01 6.8\n", "2 Nagoya 2020-01-01 5.1\n", "3 Tokyo 2020-01-02 5.7\n", "4 Osaka 2020-01-02 6.7\n", "5 Nagoya 2020-01-02 5.1\n", "6 Tokyo 2020-01-03 5.6\n", "7 Osaka 2020-01-03 6.6\n", "8 Nagoya 2020-01-03 5.0" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "tidy_df = wide_df.melt(id_vars=\"Location\", var_name=\"Date\", value_name=\"Temperature\")\n", "tidy_df" ] }, { "cell_type": "markdown", "metadata": { "raw_mimetype": "text/restructuredtext" }, "source": [ "## 整然データを可視化\n", "\n", "``tidy_df`` は整然データのDataFrameであるため、Plotly Expressに渡せます。次のコードでは整然データに変換したDataFrameをPlotly Expressを用いて棒グラフに描画しています。" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "alignmentgroup": "True", "hovertemplate": "Location=Tokyo
Date=%{x}
Temperature=%{y}", "legendgroup": "Tokyo", "marker": { "color": "#636efa", "pattern": { "shape": "" } }, "name": "Tokyo", "offsetgroup": "Tokyo", "orientation": "v", "showlegend": true, "textposition": "auto", "type": "bar", "x": [ "2020-01-01T00:00:00", "2020-01-02T00:00:00", "2020-01-03T00:00:00" ], "xaxis": "x", "y": [ 5.8, 5.7, 5.6 ], "yaxis": "y" }, { "alignmentgroup": "True", "hovertemplate": "Location=Osaka
Date=%{x}
Temperature=%{y}", "legendgroup": "Osaka", "marker": { "color": "#EF553B", "pattern": { "shape": "" } }, "name": "Osaka", "offsetgroup": "Osaka", "orientation": "v", "showlegend": true, "textposition": "auto", "type": "bar", "x": [ "2020-01-01T00:00:00", "2020-01-02T00:00:00", "2020-01-03T00:00:00" ], "xaxis": "x", "y": [ 6.8, 6.7, 6.6 ], "yaxis": "y" }, { "alignmentgroup": "True", "hovertemplate": "Location=Nagoya
Date=%{x}
Temperature=%{y}", "legendgroup": "Nagoya", "marker": { "color": "#00cc96", "pattern": { "shape": "" } }, "name": "Nagoya", "offsetgroup": "Nagoya", "orientation": "v", "showlegend": true, "textposition": "auto", "type": "bar", "x": [ "2020-01-01T00:00:00", "2020-01-02T00:00:00", "2020-01-03T00:00:00" ], "xaxis": "x", "y": [ 5.1, 5.1, 5 ], "yaxis": "y" } ], "layout": { "autosize": true, "barmode": "group", "legend": { "title": { "text": "Location" }, "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ "2019-12-31 12:00", "2020-01-03 12:00" ], "title": { "text": "Date" }, "type": "date" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 7.157894736842105 ], "title": { "text": "Temperature" }, "type": "linear" } } }, "image/png": "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AQQQQACBiAQIDRHBclp/BC68vpl+W71WaUrLvelzTj9Bj/VsrvUbNqlNj8f1/kdfBe9qaN/8Np192vH6ftnPqlantTLS03eBanpXzeBjFV9+syw47qdVv+mwSgeq50MNVLH8vv6gcqcIIIAAAggggAACCCCQsgKEhpRdHReOAAIIIIAAAggggAACCCCAQPIJEBqSbydcEQIIIIAAAggggAACCCCAAAIpK0BoSNnVceEIIIAAAggggAACCCCAAAIIJJ8AoSH5dsIVIYAAAggggAACCCCAAAIIIJCyAoSGlF0dF44AAggggAACCCCAAAIIIIBA8gkQGpJvJ1wRAggggAACCCCAAAIIIIAAAikrQGhI2dVx4QgggAACCCCAAAIIIIAAAggknwChIfl2whUhgAACCCCAAAIIIIAAAgggkLIChIaUXR0XjgACCCCAAAIIIIAAAggggEDyCRAakm8nXBECCCCAAAIIIIAAAggggAACKStAaEjZ1XHhCCCAAAIIIIAAAggggAACCCSfAKEh+XbCFSGAAAIIIIAAAggggAACCCCQsgKEhpRdHReOAAIIIIAAAggggAACCCCAQPIJEBqSbydcEQIIIIAAAggggAACCCCAAAIpK0BoSNnVceEIIIAAAggggAACCCCAAAIIJJ8AoSH5dsIVIYAAAggggAACCCCAAAIIIJCyAoSGlF0dF44AAggggAACCCCAAAIIIIBA8gkQGpJvJ1wRAggggAACCCCAAAIIIIAAAikrQGhI2dVx4QgggAACPgm07TlS/3lxYXDLGenpKlO6hE478RjdXedqHXFIBWeKGbNf14ZNm1X72oudj2EQAQQQQAABBBCwCBAaLFrMIoAAAgggkCCBWGgoVWIfNb79Gm3esk0//LhSTz37sl5e+J6G97pfp1Y52unKHuj8mE4+4UhCg5MWQwgggAACCCCwNwKEhr1R4xgEEEAAAQTyWCAWGsqVKakWDW7Y5ZW7Dhyn19/+WM+P66n09DStXrtejwx5Sm+995nWbdikykcerM4t79ChBx2gjn3HaPqs11SwQAEVLlRQ11xxrh5seLO2b9+hPsMma+bcN5SmNF1w9olqc98tKl6sSB7fJS+HAAIIIIAAAvlBgNCQH7bIPSCAAAII5HuBPYWGVb+u0UU1m+npEZ107FEHa8eOLL04722dferxKlqksHoOnqhVv67W0B7NA6MGLfvqwrOq7PKOhv4jntbX3/+o9i3qqlDBAurc70kVKJCh3g/fk+9duUEEEEAAAQQQCF+A0BC+KWdEAAEEEEAgdIE9hYbYC51ZraG6tLpTl5x/6m6v+/7HX6lll2GaO7nvX4aGWJg446qGev7JnjpgvzLBTCw6XHdne703e0QQHPhBAAEEEEAAAQQsAoQGixazCCCAAAIIJEjg70LDedfcp44P3K6q556s2DscRk58Th988o2279ihrVu3acPGzVowfdBfhoaly1fqyltbBe9k2PknKytbcyb1yY0PCbptXhYBBBBAAAEEUlCA0JCCS+OSEUAAAQT8E9hTaFj562r9u2ZzzRjTXYcfcqBq3tVBJx1/pJo3qKmiRTK1+MMv1KLjkD2Ghu9++ElX3dZGi18criKZhf2D5Y4RQAABBBBAIHQBQkPopJwQAQQQQACB8AX2FBo69xurFYtzVAAAA3xJREFU9z/5WtNHddH6jZuDj1HE3olQ4YBywUU889x8DRo1NTc0NGzdX2efepzq1Lw0+PuxL4I8o1pDDe7WVGefdnz4F84ZEUAAAQQQQMA7AUKDdyvnhhFAAAEEUlFg519vuXXbdn3zf+3dQWiPcRzH8c/BtJsWktphOfwP29UFiYsLlibtIIm4yD/lgpQkBwdlK25qO7mttBsuWv1LcVFSWtSi/m2NUe4e7SnKbYdvLfW6//o+T6/ne3rX02+p315v2Xv9LjNT1zPWGUnTNDlwopvL5yYyOX447xeXcvv+bHsTxZ9fJ9Zvqegvf83UnW6aX00GB7dm+vFcXiy8yd1rF9LZM5zl1bV8+Pg540f2/49U3pkAAQIECBDYZAGhYZM/gMcTIECAAIGNCKyHhvlnvfbowMCW7NoxlH17x3Lx9LEM7975d8TCq7e59/BJVla/Z7QzkltXz+bSjQd5OTfdnumvfGt/pVj89CWnjh/KzStn2psqHs0+zfzzXtZ+/Mz2oW05efRguucnNvJqzhAgQIAAAQIE/hEQGiwEAQIECBAgQIAAAQIECBAgUCYgNJRRGkSAAAECBAgQIECAAAECBAgIDXaAAAECBAgQIECAAAECBAgQKBMQGsooDSJAgAABAgQIECBAgAABAgSEBjtAgAABAgQIECBAgAABAgQIlAkIDWWUBhEgQIAAAQIECBAgQIAAAQJCgx0gQIAAAQIECBAgQIAAAQIEygSEhjJKgwgQIECAAAECBAgQIECAAAGhwQ4QIECAAAECBAgQIECAAAECZQJCQxmlQQQIECBAgAABAgQIECBAgIDQYAcIECBAgAABAgQIECBAgACBMgGhoYzSIAIECBAgQIAAAQIECBAgQEBosAMECBAgQIAAAQIECBAgQIBAmYDQUEZpEAECBAgQIECAAAECBAgQICA02AECBAgQIECAAAECBAgQIECgTEBoKKM0iAABAgQIECBAgAABAgQIEBAa7AABAgQIECBAgAABAgQIECBQJiA0lFEaRIAAAQIECBAgQIAAAQIECAgNdoAAAQIECBAgQIAAAQIECBAoExAayigNIkCAAAECBAgQIECAAAECBIQGO0CAAAECBAgQIECAAAECBAiUCQgNZZQGESBAgAABAgQIECBAgAABAkKDHSBAgAABAgQIECBAgAABAgTKBH4DjvANLw+vA+wAAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import plotly.express as px\n", "\n", "px.bar(tidy_df, x=\"Date\", y=\"Temperature\", color=\"Location\", barmode=\"group\").show()" ] } ], "metadata": { "celltoolbar": "Raw Cell Format", "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.9.6" } }, "nbformat": 4, "nbformat_minor": 4 }