DAT_Projekt/notebooks/hourly_bikes.ipynb

187 lines
63 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"id": "d6fa6fc8",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import seaborn as sns\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"import holidays"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "a2f9a292",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_4598/1257658190.py:2: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)`\n",
" df = df.replace([\"na\", \"NA\", \"Na\"], np.nan)\n"
]
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"operator_name 0\n",
"domain_name 0\n",
"domain_id 0\n",
"counter_site 0\n",
"counter_site_id 0\n",
"counter_serial 0\n",
"longitude 0\n",
"latitude 0\n",
"timezone 0\n",
"iso_timestamp 0\n",
"channels_in 0\n",
"channels_out 0\n",
"channels_unknown 698715\n",
"channels_all 0\n",
"site_temperature 8846\n",
"site_rain_accumulation 8846\n",
"site_snow_accumulation 698715\n",
"year 0\n",
"dtype: int64\n"
]
}
],
"source": [
"df = pd.read_csv(\"../data/processed/hourly_bikes_mannheim.csv\", low_memory=False)\n",
"df = df.replace([\"na\", \"NA\", \"Na\"], np.nan)\n",
"\n",
"print(df.isna().sum())\n",
"df[\"site_temperature\"] = df[\"site_temperature\"].astype(float)\n",
"df[\"site_rain_accumulation\"] = df[\"site_rain_accumulation\"].astype(float)\n",
"df[\"site_snow_accumulation\"] = df[\"site_snow_accumulation\"].astype(float)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "623979f9",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/tmp/ipykernel_4598/2721099372.py:17: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n",
" agg_df = df_ma.groupby('time_of_day')['channels_all'].mean().reset_index()\n"
]
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAABmgAAANfCAYAAADdPlJqAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAqOpJREFUeJzs3Xd0FPX+xvFn0xNCEhIISYDQi/QqhN6k945AQrkWitguIv5UQK+iIFZAxQKiole8goCABSGioPQiHQGpgQAh9JZ8f39wds2S3bQNG8r7dc6ek0z9zO7Od2fmmWIxxhgBAAAAAAAAAADAbTzyugAAAAAAAAAAAIC7DQENAAAAAAAAAACAmxHQAAAAAAAAAAAAuBkBDQAAAAAAAAAAgJsR0AAAAAAAAAAAALgZAQ0AAAAAAAAAAICbEdAAAAAAAAAAAAC4GQENAAAAAAAAAACAmxHQAAAAAAAAAAAAuBkBDQCHqlWrJovFIl9fX508eTKvy8mx5cuXy2KxqGnTptke12KxyGKxZGucgQMH2sZz9urSpUu2a7GaOXOmLBaLBg4cmONp3Iru1OXC7aFp06ayWCxavnx5rk43NTVVM2fO1H333afw8HB5e3srNDRU5cqVU6dOnTRx4kTt378/V+eZF1xpZ93N+lmPGzdOkjRu3LgMa7+dli2rcvLb5m6Ofjs9PDwUHBysOnXqaMKECbpw4UJel2n7zZ85c2Zel+LQrV7f3epObFfySmpqqmrXrq2IiAidP3/erl+JEiVs7cejjz6a4XQmTZpkG9bLy+tmlnxTubN9379/vywWi0qUKOGW+WWllhtfAQEBKlu2rIYMGaItW7bkdZl3hT179uhf//qXSpQoIV9fX+XPn18NGjTQ7Nmz87q0TN2M/YEDBw7o/fffV7du3VS8eHH5+voqMDBQ1apV0zPPPKPExMQMxz979qyeeeYZlS9fXv7+/ipYsKDat2+vn3/+2ek469ev12uvvaa+ffuqXLly8vDwkMVi0WeffZbt+p966inb+vSf//wnXf+UlBRVqFBBxYsX18WLF7M9fQD/uH23PgDcNGvWrNHmzZslSVeuXNFnn32W6Y4N7JUuXVoNGzZ02K9mzZpurgaAu50/f14dO3bUsmXLJF1f7xs3bixPT0/t3btXS5Ys0YIFCxQQEKARI0bYxlu+fLmaNWumJk2a5HpgBKlNmzYqUaKEqlevLkmqXr264uLiVKFChbwtDA61bt1aERERkqRr167p4MGDWrlypdauXavPPvtMK1asUGhoaB5XeeeZOXOmBg0apLi4OMIdN7MeXDfG5HElt4ePPvpI69at05QpU5QvXz6nw33++eeaNGmSfHx8HPb/+OOPb1aJcLPu3bsrMDBQknT06FGtXr1aH3/8sWbNmqX//ve/6tatWx5XePMMHDhQn3zyiWbMmJEnJ72tXbtWzZo107lz51S8eHF16NBBFy5c0LJly9SvXz/t2rXLdoLM3eL+++/Xb7/9Ji8vL9WoUUMxMTE6deqU/vjjD02YMEEffvihfvjhB9t2aVrHjx9Xo0aNtGvXLkVGRqpjx446duyYFi9erMWLF+utt97SI488km68F154Qd9++63Lta9cuVKTJ0+WxWJx+pvk6emp//znP+rZs6cmTpyosWPHujxf4G5FQAMgnY8++kiSVKRIER0+fFgfffQRAU02NWzYkIMawF1s3LhxWrZsmaKiorR48WJVrVrVrn9ycrL+97//KTIyMo8qvDs9/fTTdv936dLFpasacXM9/fTT6a4y2LVrlxo0aKBt27bp5Zdf1muvvZY3xQE5dO+992r79u0KCAjI61JuaxcvXtT//d//KSoqSg8++KDT4WrXrq21a9fq22+/Vc+ePdP1X7lypXbs2KE6depozZo1N7PkO0qRIkW0fft2eXt753Updl577TW7q3pOnjypTp06aeXKlXrooYfUtm1b+fv7512Bd7BHHnlE586dU79+/TRjxgzbd2PPnj2qV6+eXn75ZT300EN31bZvkSJF9MYbb2jAgAEKCwuzdU9MTFSvXr20fPly9erVS9u3b5enp6fduA8++KB27dqlFi1aaP78+bbfjEWLFqlTp0567LHH1KRJk3T7GPXq1VOlSpVUs2ZN1ahRQ4MHD1Z8fHy26r5w4YIGDhyoyMhI1alTR/PmzXM6bI8ePVSlShW9+uqreuihh2wn1gDIHm5xBsDOhQsX9MUXX0iSPv30UwUGBmrLli3ssABANnz55ZeSpLFjx6bbcZKk4OBgDR48WG3btnV3acBtrVy5cnrooYckSUuXLs3jaoDsCwgIUIUKFRQdHZ3XpdzWPvvsMyUmJio2NjbDkGDw4MGSnF8lYz0xzTocssbb21sVKlRQ6dKl87qUDIWF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/feb0NBQExERYbp37266detm9x3IyFdffWX73lauXNn07dvXNGzY0FgsFvPEE084/W07fPiwqVKliq2tadmypenataut/StRooTZv3+/3Tg5/U3KjLVGZ9/xAQMGGEmmd+/e6fqdOXPGNG3a1EgygYGBpkmTJqZHjx6mfPnyRpIJCwsz69evTzfe9OnTbdsTNWrUMH379jX169e31TJu3Lh041i/q0OHDjV+fn6mRIkSpnfv3qZVq1bGx8fHSDI9evQwqampduOtWLHC1u43bNjQNk5YWJiRZMqUKWNOnDiRbn6nT582DRs2NJKMt7e3adKkienbt69p1qyZKVSoULrPNSfr0pNPPmkaNGhgJJnSpUvbtUMTJkywDWf9Xjjafko77xt/m3K6fqekpJgOHTqk244oVaqUCQgIMCNGjHC4HTF+/Hjb9knjxo1N3759Tbt27UzlypWNxWIxb7zxhm3YuXPnOt02rVevnq0NTCsn642j9sY6b+v37cb5JyYmGmNu7raas8/MyjpvZ9tqnTt3Nvfcc48JDw833bt3N61atbJ9piNGjDB79uwxERERplixYqZXr16mWbNmtrbqlVdecThPZ/bu3WskmaJFizodxvoZrFixwkybNs1IMv/5z3/shvnoo4+MJPN///d/Zt++fUaS8fT0TDctd+6DWOsoXry4iYuLM97e3qZ58+amV69eply5ckaS8fX1Nb///nu6eeZ0Gy4n7WbaOp3V8fTTTxsvLy/TvHlz06NHDxMdHW0kmWLFiplTp06ZXr16GT8/P9OmTRvTtWtX2+9G1apVzeXLlx19rA5Za3HWJh0+fNjWf+nSpS4ve04/2yeffNJpG1OwYEHbNppVVtuvxMREExcXZ9v2bNCggd20586dm+6zGTFihPHw8DANGzY0ffv2NXXr1rW1VS+++KKRZEqWLGlatGhh2ya2/q5169Yt3e+ao/XHuk3To0cPh79pVjnZXspITve5rNvXI0eONB4eHqZixYqmT58+pnHjxrZ1/YknnshyHZlJTEy0tYE3bu907949w/klJyfbPsutW7dmOB/rcn366aeZ1nT27FlTsmRJExERYU6dOmWM+ee34cUXX8xw3Nq1axtJZuXKlZnOB0B6BDQAbHbu3Gnb6U97wLtChQpGkpk1a5bD8aw/+pLMe++9Z9dv6dKltoPBBw8ezLSG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q2TJkqpcubKCgoKUmJho+wybN29ud3u1sWPHqkePHnruuef01VdfqVKlSjp+/LjtVgtRUVEOd/Lfffddbd68WT///LNKliypJk2ayBij+Ph4hYWFqVOnTpo/f77trDmrESNG6MCBA5o0aZIaNWqkSpUqqUyZMvL391dCQoI2btyo06dP691331W9evUy/uDzQMGCBTVixAi99dZbatGihe092rlzp9avX69nn31W//nPf9KN5+Hhoblz56p169ZavHixoqOj1bBhQ4WFhenw4cPatGmTQkJCMr2tnqt2796t4cOHa+TIkapSpYpKly4tLy8vHT58WH/88YeuXr2q0NBQffnll3Zn4UVHR6t27dpau3atqlSpotq1a8vPz08FCxbUK6+8Iknq1auX3nzzTa1du1aVKlVSw4YNlZqaqrVr18rHx8fpephTHTt21PDhwzV16lQ1atRIjRs3VmRkpDZv3qzt27c7ba+KFi2qb7/9Vt27d9e///1vTZw4UZUrV1ZkZKSSk5O1fft2/fXXX6pbt6769++fa/U6UqxYMT3yyCN236fQ0FBt2rRJBw4c0NNPP217fx2JiYlRamqqypcvr+bNmysgIEC//vqrjhw5ovDw8HRXpuTLl0/fffedOnTooIkTJ2r69OmqWrWqihYtqgsXLmjXrl3avn27wsPDbbdTzA1RUVH64IMP1L9/fz366KP68MMPVblyZR0+fFgrVqzQY4895jDc9PDw0Lx589S+fXt98skn+vrrr1WtWjVFR0frypUr2rt3r7Zs2aKUlBQNHDgwW2eOuuKVV16xXdVijNHx48e1fv16HT9+XB4eHnrnnXfSnSE7Y8YMnT59WosXL1b58uVVrVo1lSxZ0nbW56ZNm3TlyhVt377ddhuOKlWqaOrUqRo6dKgGDBigN954QxUqVNDff/+tlStXyhijcePGqVWrVg7rfPjhh/Xhhx/qu+++U926dZWUlKRly5bpypUr6tq1q4YOHWob1tPTU88//7wef/xxxcbGaurUqSpVqpQOHDiglStXqn///vrll18c3rZmxowZateunX7//XeVLVtW9evXV1RUlBISErRlyxYlJibmypUc9erVU1RUlDZs2KCaNWuqSpUq8vb2Vvny5TVq1ChJ13/XP/jgA61fv17ly5dXTEyMzp8/rzVr1ig6OlpdunTRvHnzXK7F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zaWXXprly5fnu9/9bh577LEcdNBBSZLbbrstTzzxRJ555pnsvffeeeGFF3L99dc3SGAAAAAAAICt3WYVNA899FD69OmTs846a537+/Xrl/vuuy9z587Nt771rc15KwAAAAAAgEZjswqaBQsW5MMf/nD9182bN0+SrFy5sn5b9+7dc8ghh+TnP//55rwVAAAAAABAo7FZBU1NTU1atPifj7Fp165dkmTRokVrHNe+ffu89NJLm/NWAAAAAAAAjcZmFTTbb799Xnzxxfqvd9555yTJ9OnT67cVRZGnn34622677ea8FQAAAAAAQKOxWQXNgAED8tvf/jZvvfVWkmTo0KFJknPPPTf3339/nn322Xz+85/P3Llzs++++25+WgAAAAAAgEZgswqaT33qU1mxYkXuu+++JEmfPn1y5plnZsGCBTnqqKOy995756abbkp1dXUuuuiiBgkMAAAAAACwtWux4UP+x7XXXps99tgjgwYNSpIMHz48q1atWuOYCRMmZJdddsmdd96ZxYsXZ/fdd89Xv/rV9OvXr+FSAwAAAAAAbMU26Qqa0aNH5/bbb1/nvsMOOyyXXXZZmjVrljFjxmT69OmZPXt27r777uy3334NEhYAAAAAAKAx2KQraNbn4YcfTu/evRvq5QAAAAAAABqtzfoMGgAAAAAAADadggYAAAAAAKBkChoAAAAAAICSKWgAAAAAAABK1mJTnzBnzpxMmjRpk/clySmnnLKpbwcAAAAAANDobHJB89hjj+Wxxx5ba3tVVdV77ntnv4IGAAAAAABgEwua2traVFVVbaksAAAAAAAATcImFTR//OMft1AMAAAAAACApqNZpQMAAAAAAAA0NQoaAAAAAACAkiloAAAAAAAASqagAQAAAAAAKJmCBgAAAAAAoGQKGgAAAAAAgJIpaAAAAAAAAEqmoAEAAAAAACiZggYAAAAAAKBkChoAAAAAAICSKWgAAAAAAABKpqABAAAAAAAomYIGAAAAAACgZAoaAAAAAACAkiloAAAAAAAASqagAQAAAAAAKJmCBgAAAAAAoGQKGgAAAAAAgJIpaAAAAAAAAErWotIBAAAAAICtW/+xkyodoUHNvPyUSkcAmgBX0AAAAAAAAJRMQQMAAAAAAFAyBQ0AAAAAAEDJFDQAAAAAAAAlU9AAAAAAAACUTEEDAAAAAABQMgUNAAAA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ACiZggYAAAAAAKBkChoAAAAAAICSKWgAAAAAAABKpqABAAAAAAAomYIGAAAAAACgZAoaAAAAAACAkiloAAAAAAAASqagAQAAAAAAKJmCBgAAAAAAoGQKGgAAAAAAgJIpaAAAAAAAAEq2VRY048ePT1VV1RqPvn371u9fsWJFRo0ale222y5t27bNcccdl0WLFlUwMQAAAAAAwP/YKguaJOnXr18WLFhQ/3j00Ufr95177rm59957c+edd2batGmZP39+hg8fXsG0AAAAAAAA/6NFpQO8Xy1atEi3bt3W2v7666/nlltuye23357DDjssSTJx4sTsvvvuefzxx7P//vuXHRUAAAAAAGANW21B88ILL6RHjx5p3bp1Bg4cmIsvvji1tbWZOXNmVq1alUGDBtUf27dv39TW1mb69OnrLWjefvvtvP322/VfL126dIuOAQAAAACgMeg/dlKlIzSomZefUukINAFb5S3OBgwYkFtvvTWTJ0/ODTfckHnz5uWggw7KG2+8kYULF6a6ujrbbLPNGs/p2rVrFi5cuN7Xvfjii9OhQ4f6xw477LAFRwEAAAAAADRVW+UVNMOGDav/85577pkBAwakV69e+clPfpKampr3/brnn39+xowZU//10qVLlTQAAAAAAECD2yqvoHm3bbbZJrvuumvmzJmTbt26ZeXKlVmyZMkaxyxatGidn1nzj1q1apX27duv8QAAAAAAAGhojaKgWbZsWebOnZvu3bunf//+admyZaZOnVq/f/bs2XnxxRczcODACqYEAAAAAAD4u63yFmfnnXdejjzyyPTq1Svz58/PuHHj0rx585x44onp0KFDTj/99IwZMyYdO3ZM+/bt84UvfCEDBw7M/vvvX+noAAAAAAAAW2dB8/LLL+fEE0/Ma6+9ls6dO+fAAw/M448/ns6dOydJrr766jRr1izHHXdc3n777QwZMiTf/e53K5waAAAAAADg77bKgubHP/7xeve3bt06EyZMyIQJE0pKBAAAAAAAsPEaxWfQAAAAAAAAbE0UNAAAAAAAACVT0AAAAAAAAJRMQQMAAAAAAFAyBQ0AAAAAAEDJFDQAAAAAAAAlU9AAAAAAAACUTEEDAAAAAABQMgUNAAAAAABAyRQ0AAAAAAAAJVPQAAAAAAAAlExBAwAAAAAAUDIFDQAAAAAAQMkUNAAAAAAAACVT0AAAAAAAAJRMQQMAAAAAAFAyBQ0AAAAAAEDJFDQAAAAAAAAlU9AAAAAAAACUTEEDAAAAAABQMgUNAAAAAABAyRQ0AAAAAAAAJVPQAAAAAAAAlExBAwAAAAAAUDIFDQAAAAAAQMkUNAAAAAAAACVT0AAAAAAAAJRMQQMAAAAAAFCyFpUOAGy9+o+dVOkIDWrm5adUOgIAAAAA0ES4ggYAAAAAAKBkChoAAAAAAICSKWgAAAAAAABKpqABAAAAAAAomYIGAAAAAACgZAoaAAAAAACAkiloAAAAAAAASqagAQAAAAAAKJmCBgAAAAAAoGQKGgAAAAAAgJIpaAAAAAAAAEqmoAEAAAAAACiZggYAAAAAAKBkChoAAAAAAICSKWgAAAAAAABKpqABAAAAAAAomYIGAAAAAACgZC0qHQAAAAAAALZ2/cdOqnSEBjXz8lMqHaHRcwUNAAAAAABAyRQ0AAAAAAAAJVPQAAAAAAAAlExBAwAAAAAAUDIFDQAAAAAAQMkUNAAAAAAAACVT0AAAAAAAAJRMQQMAAAAAAFAyBQ0AAAAAAEDJFDQAAAAAAAAlU9AAAAAAAACUTEEDAAAAAABQMgUNAAAAAABAyRQ0AAAAAAAAJVPQAAAAAAAAlExBAwAAAAAAUDIFDQAAAAAAQMkUNAAAAAAAACVT0AAAAAAAAJRMQQMAAAAAAFAyBQ0AAAAAAEDJFDQAAAAAAAAlU9AAAAAAAACUTEEDAAAAAABQMgUNAAAAAABAyRQ0AAAAAAAAJVPQAAAAAAAAlExBAwAAAAAAUDIFDQAAAAAAQMkUNAAAAAAAACVT0AAAAAAAAJSsRaUDAAAAAAAAW7/+YydVOkKDmXn5KVv8PVxBAwAAAAAAUDIFDQAAAAAAQMkUNAAAAAAAACVT0AAAAAAAAJRMQQMAAAAAAFAyBQ0AAAAAAEDJFDQAAAAAAAAlU9AAAAAAAACUTEEDAAAAAABQMgUNAAAAAABAyRQ0AAAAAAAAJVPQAAAAAAAAlExBAwAAAAAAUDIFDQAAAAAAQMlaVDrA1qr/2EmVjtCgZl5+SqUjAAAAAABAk6GggfdJSQcAAAAAwPvlFmcAAAAAAAAlU9AAAAAAAACUTEEDAAAAAABQMgUNAAAAAABAyRQ0AAAAAAAAJWtR6QBsvfqPnVTpCA1m5uWnVDoCAAAAAABNiCtoAAAAAAAASqagAQAAAAAAKJmCBgAAAAAAoGQKGgAAAAAAgJIpaAAAAAAAAEqmoAEAAAAAACiZggYAAAAAAKBkChoAAAAAAICSKWgAAAAAAABKpqABAAAAAAAomYIGAAAAAACgZAoaAAAAAACAkiloAAAAAAAASqagAQAAAAAAKJmCBgAAAAAAoGQKGgAAAAAAgJI1+oJmwoQJ6d27d1q3bp0BAwbkiSeeqHQkAAAAAACgiWvUBc0dd9yRMWPGZNy4cXn66aez1157ZciQIXn11VcrHQ0AAAAAAGjCGnVBc9VVV+Vzn/tcTj311Oyxxx658cYb86EPfSjf//73Kx0NAAAAAABowlpUOsCWsnLlysycOTPnn39+/bZmzZpl0KBBmT59+jqf8/bbb+ftt9+u//r1119PkixdunStY1e//VYDJ66sdY1xQxrTHDT18SfmINn0OWjq40/MQdK45qCpjz8xB019/Ik5SMxBUx9/Yg6a+vgTc5D42cD3gDlo6uNPzEFTH39iDhJz8F7jf2d7URSb/R5VRUO8ygfQ/Pnzs/322+fXv/51Bg4cWL/9S1/6UqZNm5YZM2as9Zzx48fnG9/4RpkxAQAAAACArczcuXOz0047bdZrNNoraN6P888/P2PGjKn/esmSJenVq1defPHFdOjQoYLJKmPp0qXZYYcd8tJLL6V9+/aVjlMRTX0Omvr4E3OQmIOmPv7EHDT18SfmoKmPPzEHiTlo6uNPzEFTH39iDhJz0NTHn5iDpj7+xBw09fEn5iD5+523amtr07Fjx81+rUZb0HTq1CnNmzfPokWL1ti+aNGidOvWbZ3PadWqVVq1arXW9g4dOjTZb7Ykad++fZMef2IOmvr4E3OQmIOmPv7EHDT18SfmoKmPPzEHiTlo6uNPzEFTH39iDhJz0NTHn5iDpj7+xBw09fEn5iD5+0eqbPZrNECOD6Tq6ur0798/U6dOrd9WV1eXqVOnrnHLMwAAAAAAgLI12itokmTMmDEZMWJE9tlnn+y333655pprsnz58px66qmVjgYAAAAAADRhjbqgOf744/PnP/85X//617Nw4cLsvffemTx5crp27bpRz2/VqlXGjRu3ztueNQVNffyJOWjq40/MQWIOmvr4E3PQ1MefmIOmPv7EHCTmoKmPPzEHTX38iTlIzEFTH39iDpr6+BNz0NTHn5iDpGHnoKooiqIBMgEAAAAAALCRGu1n0AAAAAAAAHxQKWgAAAAAAABKpqABAAAAAAAomYIGAAAAAACgZAqa9zBhwoT07t07rVu3zoABA/LEE09UOlJpHnnkkRx55JHp0aNHqqqqcvfdd1c6Uqkuvvji7LvvvmnXrl26dOmSY445JrNnz650rFLdcMMN2XPPPdO+ffu0b98+AwcOzC9/+ctKx6qYSy65JFVVVRk9enSlo5Rm/PjxqaqqWuPRt2/fSscq3SuvvJJ//ud/znbbbZeampp85CMfyVNPPVXpWKXo3bv3Wt8DVVVVGTVqVKWjlWb16tW54IILsuOOO6ampiZ9+vTJhRdemKIoKh2tNG+88UZGjx6dXr16paamJh//+Mfz5JNPVjrWFrOhNVBRFPn617+e7t27p6amJoMGDcoLL7xQmbBbyIbm4Oc//3kGDx6c7bbbLlVVVZk1a1ZFcm4p6xv/qlWr8uUvfzkf+chH0qZNm/To0SOnnHJK5s+fX7nAW8CGvgfGjx+fvn37pk2bNtl2220zaNCgzJgxozJht5BN+XnorLPOSlVVVa655prS8m1pGxr/yJEj11ofDB06tDJht5CN+R54/vnnc9RRR6VDhw5p06ZN9t1337z44ovlh90CNjT+da0Rq6qqcvnll1cm8BawoTlYtmxZzj777PTs2TM1NTXZY489cuONN1Ym7BawofEvWrQoI0eOTI8ePfKhD30oQ4cObXRroo05N7RixYqMGjUq2223Xdq2bZvjjjsuixYtqlDihrUx47/pppty6KGHpn379qmqqsqSJUsqE3YL2dAcLF68OF/4whey2267paamJrW1tfniF7+Y119/vYKpG87GfA/8y7/8S/r06ZOampp07tw5Rx99dH73u99VKHHD25RzxEVRZNiwYe/rXLqCZh3uuOOOjBkzJuPGjcvTTz+dvfbaK0OGDMmrr75a6WilWL58efbaa69MmDCh0lEqYtq0aRk1alQef/zxTJkyJatWrcrgwYOzfPnySkcrTc+ePXPJJZdk5syZeeqpp3LYYYfl6KOPzm9+85tKRyvdk08+me9973vZc889Kx2ldP369cuCBQvqH48++milI5Xqr3/9aw444IC0bNkyv/zlL/Pb3/42V155ZbbddttKRyvFk08+ucZ//ylTpiRJPvOZz1Q4WXkuvfTS3HDDDbn++uvz/PPP59JLL81ll12W6667rtLRSnPGGWdkypQp+Y//+I88++yzGTx4cAYNGpRXXnml0tG2iA2tgS677LJce+21ufHGGzNjxoy0adMmQ4YMyYoVK0pOuuVsaA6WL1+eAw88MJdeemnJycqxvvG/+eabefrpp3PBBRfk6aefzs9//vPMnj07Rx11VAWSbjkb+h7Yddddc/311+fZZ5/No48+mt69e2fw4MH585//XHLSLWdjfx6666678vjjj6dHjx4lJSvHxox/6NCha6wTfvSjH5WYcMvb0BzMnTs3Bx54YPr27ZuHH344//3f/50LLrggrVu3LjnplrGh8f/jf/sFCxbk+9//fqqqqnLccceVnHTL2dAcjBkzJpMnT84Pf/jDPP/88xk9enTOPvvs3HPPPSUn3TLWN/6iKHLMMcfkD3/4Q37xi1/kmWeeSa9evTJo0KBGdd5kY84NnXvuubn33ntz5513Ztq0aZk/f36GDx9ewdQNZ2PG/+abb2bo0KH56le/WsGkW86G5mD+/PmZP39+rrjiijz33HO59dZbM3ny5Jx++ukVTt4wNuZ7oH///pk4cWKef/75PPDAAymKIoMHD87q1asrmLzhbMo54muuuSZVVVXv740K1rLffvsVo0aNqv969erVRY8ePYqLL764gqkqI0lx1113VTpGRb366qtFkmLatGmVjlJR2267bfHv//7vlY5RqjfeeKPYZZddiilTphSHHHJIcc4551Q6UmnGjRtX7LXXXpWOUVFf/vKXiwMPPLDSMT4wzjnnnKJPnz5FXV1dpaOU5ogjjihOO+20NbYNHz68OOmkkyqUqFxvvvlm0bx58+K+++5bY/vHPvax4mtf+1qFUpXn3Wugurq6olu3bsXll19ev23JkiVFq1atih/96EcVSLjlrW8dOG/evCJJ8cwzz5SaqUwbsw5+4okniiTFn/70p3JClWxj5uD1118vkhS/+tWvyglVsveag5dffrnYfvvti+eee67o1atXcfXVV5eerQzrGv+IESOKo48+uiJ5KmFdc3D88ccX//zP/1yZQCXbmP8PHH300cVhhx1WTqAKWNcc9OvXr/jmN7+5xrbGukZ69/hnz55dJCmee+65+m2rV68uOnfuXNx8880VSFiOd58bWrJkSdGyZcvizjvvrD/m+eefL5IU06dPr1TMLWZ958YeeuihIknx17/+tfxgJdqY84M/+clPiurq6mLVqlUlJivHxoz/v/7rv4okxZw5c0pMVp73moNnnnmm2H777YsFCxa8r3PprqB5l5UrV2bmzJkZNGhQ/bZmzZpl0KBBmT59egWTUSnvXJrYsWPHCiepjNWrV+fHP/5xli9fnoEDB1Y6TqlGjRqVI444Yo3/HzQlL7zwQnr06JGddtopJ510UqO5ZcPGuueee7LPPvvkM5/5TLp06ZKPfvSjufnmmysdqyJWrlyZH/7whznttNPe/2+EbIU+/vGPZ+rUqfn973+fJPmv//qvPProoxk2bFiFk5Xjb3/7W1avXr3WbwPX1NQ0uSvqkmTevHlZuHDhGv8mdOjQIQMGDLBGbMJef/31VFVVZZtttql0lIpYuXJlbrrppnTo0CF77bVXpeOUpq6uLieffHLGjh2bfv36VTpORTz88MPp0qVLdtttt3z+85/Pa6+9VulIpamrq8v999+fXXfdNUOGDEmXLl0yYMCAJndr8HcsWrQo999/f6P5jfGN9fGPfzz33HNPXnnllRRFkYceeii///3vM3jw4EpH2+LefvvtJFljjdisWbO0atWqUa8R331uaObMmVm1atUaa8O+ffumtra2Ua4Nm/q5sWTj5uD1119P+/bt06JFi7JilWZD41++fHkmTpyYHXfcMTvssEOZ0Uqzrjl4880380//9E+ZMGFCunXr9r5eV0HzLn/5y1+yevXqdO3adY3tXbt2zcKFCyuUikqpq6vL6NGjc8ABB+TDH/5wpeOU6tlnn03btm3TqlWrnHXWWbnrrruyxx57VDpWaX784x/n6aefzsUXX1zpKBUxYMCA+stzb7jhhsybNy8HHXRQ3njjjUpHK80f/vCH3HDDDdlll13ywAMP5POf/3y++MUv5gc/+EGlo5Xu7rvvzpIlSzJy5MhKRynVV77ylZxwwgnp27dvWrZsmY9+9KMZPXp0TjrppEpHK0W7du0ycODAXHjhhZk/f35Wr16dH/7wh5k+fXoWLFhQ6Xile2cdaI3IO1asWJEvf/nLOfHEE9O+fftKxynVfffdl7Zt26Z169a5+uqrM2XKlHTq1KnSsUpz6aWXpkWLFvniF79Y6SgVMXTo0EyaNClTp07NpZdemmnTpmXYsGGN5nYmG/Lqq69m2bJlueSSSzJ06ND853/+Z4499tgMHz4806ZNq3S80v3gBz9Iu3btGs1tnTbWddddlz322CM9e/ZMdXV1hg4dmgkTJuTggw+udLQt7p0S4vzzz89f//rXrFy5MpdeemlefvnlRrtGXNe5oYULF6a6unqtX9JojGvDpnxu7B0bMwd/+ctfcuGFF+bMM88sOd2Wt77xf/e7303btm3Ttm3b/PKXv8yUKVNSXV1doaRbznvNwbnnnpuPf/zjOfroo9/3aze+Og8a0KhRo/Lcc8816t8CeS+77bZbZs2alddffz0//elPM2LEiEybNq1JlDQvvfRSzjnnnEyZMqXR3Ed6U/3jFQJ77rlnBgwYkF69euUnP/lJk/ntuLq6uuyzzz759re/nST56Ec/mueeey433nhjRowYUeF05brlllsybNiwRneP/Q35yU9+kttuuy233357+vXrl1mzZmX06NHp0aNHk/ke+I//+I+cdtpp2X777dO8efN87GMfy4knnpiZM2dWOhpU1KpVq/LZz342RVHkhhtuqHSc0n3iE5/IrFmz8pe//CU333xzPvvZz2bGjBnp0qVLpaNtcTNnzsx3vvOdPP30003qqtJ/dMIJJ9T/+SMf+Uj23HPP9OnTJw8//HAOP/zwCiYrR11dXZLk6KOPzrnnnpsk2XvvvfPrX/86N954Yw455JBKxivd97///Zx00klN7uem6667Lo8//njuueee9OrVK4888khGjRqVHj16NPo7MLRs2TI///nPc/rpp6djx45p3rx5Bg0alGHDhqUoikrH2yKa8rmhxPiTDc/B0qVLc8QRR2SPPfbI+PHjyw1XgvWN/6STTsonP/nJLFiwIFdccUU++9nP5rHHHmt0/y6saw7uueeePPjgg3nmmWc267VdQfMunTp1SvPmzbNo0aI1ti9atOh9X6bE1unss8/Offfdl4ceeig9e/asdJzSVVdXZ+edd07//v1z8cUXZ6+99sp3vvOdSscqxcyZM/Pqq6/mYx/7WFq0aJEWLVpk2rRpufbaa9OiRYsm89uB/2ibbbbJrrvumjlz5lQ6Smm6d+++ViG5++67N7lbvf3pT3/Kr371q5xxxhmVjlK6sWPH1l9F85GPfCQnn3xyzj333CZ1ZV2fPn0ybdq0LFu2LC+99FKeeOKJrFq1KjvttFOlo5XunXWgNSLvlDN/+tOfMmXKlCZ39UyStGnTJjvvvHP233//3HLLLWnRokVuueWWSscqxf/9v/83r776ampra+vXiX/605/yr//6r+ndu3el41XETjvtlE6dOjWZdWKnTp3SokUL68T8/e/D7Nmzm9w68a233spXv/rVXHXVVTnyyCOz55575uyzz87xxx+fK664otLxStG/f//MmjUrS5YsyYIFCzJ58uS89tprjXKN+F7nhrp165aVK1dmyZIlaxzf2NaGTf3cWLLhOXjjjTcydOjQtGvXLnfddVdatmxZgZRbzobG36FDh+yyyy45+OCD89Of/jS/+93vctddd1Ug6ZbzXnPw4IMPZu7cudlmm23q14VJctxxx+XQQw/d6NdX0LxLdXV1+vfvn6lTp9Zvq6ury9SpU5vc5280VUVR5Oyzz85dd92VBx98MDvuuGOlI30g1NXV1d9rtrE7/PDD8+yzz2bWrFn1j3322ScnnXRSZs2alebNm1c6YumWLVuWuXPnpnv37pWOUpoDDjggs2fPXmPb73//+/Tq1atCiSpj4sSJ6dKlS4444ohKRyndm2++mWbN1lwqNW/evP43Z5uSNm3apHv37vnrX/+aBx54YLMu395a7bjjjunWrdsaa8SlS5dmxowZ1ohNyDvlzAsvvJBf/epX2W677Sod6QOhKa0TTz755Pz3f//3GuvEHj16ZOzYsXnggQcqHa8iXn755bz22mtNZp1YXV2dfffd1zoxf7/Kun///k3qM6iSv/9bsGrVKuvE/P3EbOfOnfPCCy/kqaeealRrxA2dG+rfv39atmy5xtpw9uzZefHFFxvF2tC5sY2bg6VLl2bw4MGprq7OPffc06iuGnk/3wNFUaQoikazLtzQHHzlK19Za12YJFdffXUmTpy40e/jFmfrMGbMmIwYMSL77LNP9ttvv1xzzTVZvnx5Tj311EpHK8WyZcvW+O2nefPmZdasWenYsWNqa2srmKwco0aNyu23355f/OIXadeuXf29Qzt06JCampoKpyvH+eefn2HDhqW2tjZvvPFGbr/99jz88MNN5ofOdu3arXVPzTZt2mS77bZrMvdbPe+883LkkUemV69emT9/fsaNG5fmzZvnxBNPrHS00rxzH9Fvf/vb+exnP5snnngiN910U2666aZKRytNXV1dJk6cmBEjRjTKDznckCOPPDLf+ta3Ultbm379+uWZZ57JVVddldNOO63S0UrzwAMPpCiK7LbbbpkzZ07Gjh2bvn37Nto10YbWQKNHj85FF12UXXbZJTvuuGMuuOCC9OjRI8ccc0zlQjewDc3B4sWL8+KLL2b+/PlJUn+Cslu3bo3it0XXN/7u3bvnf/2v/5Wnn3469913X1avXl2/TuzYsWOjudf2+uZgu+22y7e+9a0cddRR6d69e/7yl79kwoQJeeWVV/KZz3ymgqkb1ob+Hry7mGvZsmW6deuW3XbbreyoW8T6xt+xY8d84xvfyHHHHZdu3bpl7ty5+dKXvpSdd945Q4YMqWDqhrWh74GxY8fm+OOPz8EHH5xPfOITmTx5cu699948/PDDlQvdgDbmnMDSpUtz55135sorr6xUzC1qQ3NwyCGHZOzYsampqUmvXr0ybdq0TJo0KVdddVUFUzecDY3/zjvvTOfOnVNbW5tnn30255xzTo455pgMHjy4gqkb1obODXXo0CGnn356xowZk44dO6Z9+/b5whe+kIEDB2b//fevcPrNtzHnxhYuXJiFCxfWf688++yzadeuXWpra9/zg+S3Jhuag3fKmTfffDM//OEPs3Tp0ixdujRJ0rlz563+l3s3NP4//OEPueOOOzJ48OB07tw5L7/8ci655JLU1NTkU5/6VIXTN4wNzcF7/QxUW1u7aaVmwTpdd911RW1tbVFdXV3st99+xeOPP17pSKV56KGHiiRrPUaMGFHpaKVY19iTFBMnTqx0tNKcdtppRa9evYrq6uqic+fOxeGHH17853/+Z6VjVdQhhxxSnHPOOZWOUZrjjz++6N69e1FdXV1sv/32xfHHH1/MmTOn0rFKd++99xYf/vCHi1atWhV9+/YtbrrppkpHKtUDDzxQJClmz55d6SgVsXTp0uKcc84pamtri9atWxc77bRT8bWvfa14++23Kx2tNHfccUex0047FdXV1UW3bt2KUaNGFUuWLKl0rC1mQ2ugurq64oILLii6du1atGrVqjj88MMb3d+PDc3BxIkT17l/3LhxFc3dUNY3/nnz5r3nOvGhhx6qdPQGs745eOutt4pjjz226NGjR1FdXV107969OOqoo4onnnii0rEb1Kb+PNSrV6/i6quvLjXjlrS+8b/55pvF4MGDi86dOxctW7YsevXqVXzuc58rFi5cWOnYDWpjvgduueWWYueddy5at25d7LXXXsXdd99ducANbGPG/73vfa+oqalptOuCDc3BggULipEjRxY9evQoWrduXey2227FlVdeWdTV1VU2eAPZ0Pi/853vFD179ixatmxZ1NbWFv/2b//W6NbIG3Nu6K233ir+9//+38W2225bfOhDHyqOPfbYYsGCBZUL3YA2Zvzjxo1r1OfPNjQH7/X3JEkxb968imZvCBsa/yuvvFIMGzas6NKlS9GyZcuiZ8+exT/90z8Vv/vd7yobvAG9n3PESYq77rprk96n6v8/EQAAAAAAgJL4DBoAAAAAAICSKWgAAAAAAABKpqABAAAAAAAomYIGAAAAAACgZAoaAAAAAACAkiloAAAAAAAASqagAQAAAAAAKJmCBgAAAAAAoGQKGgAA4APlj3/8Y6qqqlJVVZU//vGP6z22d+/eqaqqyq233lq/7dBDD01VVVUefvjhLZpzS3pnXBsaPwAAsPVS0AAAAGwlRo4cuVYhBQAAbJ1aVDoAAAAAa5o6dWpWrVqV7bffvtJRAACALURBAwAA8AHTp0+fSkcAAAC2MLc4AwAAGq1Zs2Zl+PDh6dSpU1q1apU99tgjV155ZYqiWOvYf7x92HPPPZfjjz8+3bt3T/PmzTN+/Pg1PhtnfY913X5s6tSpGT58eLp3757q6up06dIlxx57bKZPn77O3O/+DJp33vsHP/hBkuTUU09d4z3Hjx/fUFMGAACUxBU0AABAo/TAAw/kqquuSp8+ffLJT34yCxYsyKOPPprzzjsvL730Uq655pp1Pu/Xv/51zjrrrHTv3j0HH3xw3nrrrbRr1y5t27bNiBEj1vmclStX5o477khdXV2aN2++xr7zzjsvV155ZZo1a5Z99tknBx10UF588cX84he/yL333pubb745p5566nrH8s57P/roo5k7d24OOOCA7LzzzvX79957702aGwAAoPIUNAAAQKN0ySWX5MYbb8y//Mu/1G978MEHM2jQoFx//fU577zz0rNnz7Wed/PNN+crX/lKvvWtb6VZszVvOrCuq2OKosjJJ5+curq6HHjggfnMZz6zxmtdeeWV2XnnnfOzn/0se+65Z/2+Rx55JJ/+9Kdz1lln5cADD8wuu+zynmPp1KlTbr311owcOTJz587NGWeckZEjR27CbAAAAB80bnEGAAA0SsOHD1+jnEmSww47LEOGDMnq1avz0EMPrfN5u+66ay666KK1ypn38rWvfS233XZb+vbtm1/84hdp3bp1kqSurq7+1mM//vGP1yhnkuTggw/OBRdckJUrV+Z73/veJo4OAADY2iloAACARunII49c5/bdd989SfLKK6+sc/8xxxyz1m3K3sv3vve9XHzxxenatWt++ctfpmPHjvX7nnnmmcyfPz99+vRJ//791/n8Qw89NMnfb6sGAAA0LW5xBgAAfKBUVVXV/7koivUe+87+f3zOO2pra9f5nPbt2ydJVqxYsc79vXv33piYuf/++zNq1Ki0adMm999//1rP+8Mf/pAkmTt37jrz/aM///nPG/WeAABA46GgAQAAPlDatGlT/+fly5ev99hly5YlSdq2bbvWvo29Rdm71dTUbPCYp556Kscff3yqqqpy5513rvMKmbq6uiRJt27dMmTIkPW+XqdOnd5XVgAAYOuloAEAAD5QOnbsmLZt22bZsmWZM2dOPvzhD6/zuMWLF2fx4sVJ3vtqmS1h3rx5+fSnP53ly5fn5ptvzrBhw9Z53A477JAk2W677XLrrbeWlg8AANg6+AwaAADgA6VZs2Y55JBDkiQ/+9nP3vO4n/70p0mSbbfdNnvvvXcZ0bJ48eIMGzYsixYtygUXXJAzzjjjPY/dd99906lTp/z2t7/Nb37zmwZ5/+rq6iTJ3/72twZ5PQAAoHIUNAAAwAfOl770pVRVVeW2227LLbfcstb+6dOn56tf/WqS5F//9V/TsmXLLZ5pxYoVOeqoozJ79uyMGDEi3/zmN9d7fMuWLTNu3LgURZFjjz02jz766FrHrF69Og8++GAef/zxjcrQs2fPJGmwwgcAAKgctzgDAAA+cA4++OBcc801GTNmTM4444x8+9vfzsc+9rG0aNEic+bMycyZM1MURU444YR85StfKSXTnXfemcceeyzNmjXLqlWrMnLkyHUed8YZZ+TAAw9Mkpx99tl58cUXc/nll+eggw5Kv379svPOO6empiYLFy7MrFmzsmTJktxwww3Zf//9N5jhmGOOyTe+8Y1ce+21ee6557LDDjukWbNmOeqoo3LUUUc15HABAIAtTEEDAAB8IH3xi1/MwQcfnOuvvz6PPPJI/s//+T/529/+ls6dO+foo4/OqaeeWmopsXr16iRJXV1dbr/99vc87tBDD60vaJLksssuyzHHHJPvfve7efTRRzN58uRUV1ene/fuOfTQQ/PpT386w4cP36gMe+65Z372s5/liiuuyIwZMzJ16tQURZGePXsqaAAAYCtTVRRFUekQAAAAAAAATYnPoAEAAAAAACiZggYAAAAAAKBkChoAAAAAAICSKWgAAAAAAABKpqABAAAAAAAomYIGAAAAAACgZAoaAAAAAACAkiloAAAAAAAASqagAQAAAAAAKJmCBgAAAAAAoGQKGgAAAAAAgJIpaAAAAAAAAEr2/wB0YV7DXdggZQAAAABJRU5ErkJggg==",
"text/plain": [
"<Figure size 2000x1000 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# Ensure the 'iso_timestamp' is properly parsed with utc=True\n",
"df['timestamp'] = pd.to_datetime(df['iso_timestamp'], utc=True) # Convert to datetime with UTC handling\n",
"\n",
"# Extract the hour from the timestamp\n",
"df['hour'] = df['timestamp'].dt.hour\n",
"\n",
"bins = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17,18,19,20,21,22,23,24] # These are the edges of your 3-hour bins\n",
"\n",
"\n",
"# Add a new column with the time bin for each row\n",
"df['time_of_day'] = pd.cut(df['hour'], bins=bins, right=False)\n",
"\n",
"# Aggregate the data by time_of_day\n",
"#agg_df = df.groupby('time_of_day')['channels_all'].sum().reset_index()\n",
"\n",
"df_ma = df[df['counter_site'] == \"Renzstraße\"]\n",
"agg_df = df_ma.groupby('time_of_day')['channels_all'].mean().reset_index()\n",
"\n",
"\n",
"\n",
"# Create a Seaborn bar plot to visualize the aggregated data\n",
"plt.figure(figsize=(20, 10))\n",
"ax = sns.barplot( data=agg_df,x=\"time_of_day\", y=\"channels_all\")\n",
"\n",
"\n",
"n = len(agg_df) # bei dir 24\n",
"\n",
"# Ticks auf die Grenzen legen: -0.5, 0.5, 1.5, ..., 23.5\n",
"ax.set_xlim(-0.5, n - 0.5)\n",
"ax.set_xticks(np.arange(-0.5, n + 0.5, 1))\n",
"\n",
"# Tick-Labels: 0..24 (Grenzwerte)\n",
"ax.set_xticklabels([str(i) for i in range(n + 1)], rotation=0)\n",
"ax.ticklabel_format(axis='y', style='plain', useOffset=False)\n",
"\n",
"# Add some labels and title to the plot\n",
"ax.set_title('Fahrradpassagen pro Stunde als arithmetisches Mittel über den Beobachtungszeitraum (Mannheim, Renzstraße, ab 2014)', fontsize=16)\n",
"plt.xlabel('Uhrzeit', fontsize=16)\n",
"\n",
"from matplotlib.ticker import EngFormatter, FuncFormatter\n",
"\n",
"#ax.yaxis.set_major_formatter(FuncFormatter(lambda x, pos: f\"{x/1e6:.1f}\"))\n",
"plt.ylabel('Fahrradpassagen', fontsize=16)\n",
"\n",
"# Optionally, rotate the x-axis labels for better readability\n",
"plt.xticks(rotation=0)\n",
"\n",
"# Show the plot\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "0364d24a",
"metadata": {
"vscode": {
"languageId": "ruby"
}
},
"outputs": [],
"source": [
"df['hour'] = df['timestamp'].dt.hour\n",
"df['day_of_week'] = df['timestamp'].dt.dayofweek # 0=Monday, 6=Sunday\n",
"df['month'] = df['timestamp'].dt.month\n",
"df['is_weekend'] = df['day_of_week'].isin([5, 6]).astype(int) # 1 if weekend, 0 if weekday\n",
"# You can manually add holidays or use a library like `holidays` to check if the day is a public holiday.\n",
"de_holidays = holidays.Germany(years=2023) # For Germany, for example\n",
"df['is_holiday'] = df['timestamp'].dt.date.isin(de_holidays.keys()).astype(int)\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "dat (3.12.3)",
"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.3"
}
},
"nbformat": 4,
"nbformat_minor": 5
}