{
"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",
"\n",
"\n",
"次のように、雑然データでは1つの列に日付と気温の2つの変数で構成されているのに対して、整然データでは各列が1つの変数で構成されているのが確認できます。\n",
"\n",
"\n",
"\n",
"次のように、雑然データでは各行が複数の日付で構成(観測単位が複数)されているのに対して、整然データでは各列が1つの観測で構成されているのが確認できます。\n",
"\n",
""
]
},
{
"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",
" Location | \n",
" 2020-01-01 00:00:00 | \n",
" 2020-01-02 00:00:00 | \n",
" 2020-01-03 00:00:00 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Tokyo | \n",
" 5.8 | \n",
" 5.7 | \n",
" 5.6 | \n",
"
\n",
" \n",
" 1 | \n",
" Osaka | \n",
" 6.8 | \n",
" 6.7 | \n",
" 6.6 | \n",
"
\n",
" \n",
" 2 | \n",
" Nagoya | \n",
" 5.1 | \n",
" 5.1 | \n",
" 5.0 | \n",
"
\n",
" \n",
"
\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",
" Location | \n",
" Date | \n",
" Temperature | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" Tokyo | \n",
" 2020-01-01 | \n",
" 5.8 | \n",
"
\n",
" \n",
" 1 | \n",
" Osaka | \n",
" 2020-01-01 | \n",
" 6.8 | \n",
"
\n",
" \n",
" 2 | \n",
" Nagoya | \n",
" 2020-01-01 | \n",
" 5.1 | \n",
"
\n",
" \n",
" 3 | \n",
" Tokyo | \n",
" 2020-01-02 | \n",
" 5.7 | \n",
"
\n",
" \n",
" 4 | \n",
" Osaka | \n",
" 2020-01-02 | \n",
" 6.7 | \n",
"
\n",
" \n",
" 5 | \n",
" Nagoya | \n",
" 2020-01-02 | \n",
" 5.1 | \n",
"
\n",
" \n",
" 6 | \n",
" Tokyo | \n",
" 2020-01-03 | \n",
" 5.6 | \n",
"
\n",
" \n",
" 7 | \n",
" Osaka | \n",
" 2020-01-03 | \n",
" 6.6 | \n",
"
\n",
" \n",
" 8 | \n",
" Nagoya | \n",
" 2020-01-03 | \n",
" 5.0 | \n",
"
\n",
" \n",
"
\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
}