{ "cells": [ { "cell_type": "markdown", "id": "c2188cd7", "metadata": {}, "source": [ "# Read data" ] }, { "cell_type": "code", "execution_count": 15, "id": "5b2b0060", "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import seaborn as sns\n", "import matplotlib.pyplot as plt" ] }, { "cell_type": "code", "execution_count": 16, "id": "52f55dde", "metadata": {}, "outputs": [], "source": [ "activity_cols = {\n", " \"Datum\": \"date\",\n", " \"Ø Pace\": \"activity_pace_average\",\n", " \"Kalorien\": \"activity_calories\",\n", " \"Zeit\": \"activity_duration\",\n", " \"Ø Herzfrequenz\": \"activity_heart_rate_average\",\n", " \"Ø Atemfrequenz\": \"activity_breathing_rate_average\",\n", "}\n", "df_activities = pd.read_csv(\n", " \"data/raw/all_activities.csv\",\n", " usecols=list(activity_cols.keys())\n", ")\n", "df_activities.rename(columns=activity_cols, inplace=True)\n", "\n", "sleep_cols = {\n", " \"Sleep Score 7 Tage\": \"date\",\n", " \"Score\": \"sleep_score\",\n", " \"Dauer\": \"sleep_duration\",\n", " \"Schlafenszeit\": \"sleep_bedtime\",\n", " \"Ruheherzfrequenz\": \"sleep_resting_heart_rate\",\n", " \"HFV-Status\": \"sleep_hrv_status\",\n", " \"Atmung\": \"sleep_breathing_rate\",\n", " \"Schlafbedürfnis\": \"sleep_duration_needed\",\n", "}\n", "df_sleep = pd.read_csv(\n", " \"data/raw/sleep.csv\",\n", " usecols=list(sleep_cols.keys())\n", ")\n", "df_sleep.rename(columns=sleep_cols, inplace=True)" ] }, { "cell_type": "markdown", "id": "91f04fe7", "metadata": {}, "source": [ "# Clean data/time features" ] }, { "cell_type": "markdown", "id": "97252627", "metadata": {}, "source": [ "## Activities" ] }, { "cell_type": "code", "execution_count": 17, "id": "826e5af0", "metadata": {}, "outputs": [], "source": [ "def pace_to_seconds(pace_str):\n", " try:\n", " if isinstance(pace_str, str) and \":\" in pace_str:\n", " parts = pace_str.split(\":\")\n", " if len(parts) == 2:\n", " minutes, seconds = int(parts[0]), int(parts[1])\n", " return minutes * 60 + seconds\n", " elif len(parts) == 3: # If format is HH:MM:SS\n", " hours, minutes, seconds = int(\n", " parts[0]), int(parts[1]), int(parts[2])\n", " return hours * 3600 + minutes * 60 + seconds\n", " return float(pace_str)\n", " except Exception:\n", " return 0\n", "\n", "\n", "df_activities[\"date\"] = pd.to_datetime(df_activities[\"date\"], errors=\"coerce\")\n", "df_activities[\"activity_starting_time\"] = df_activities[\"date\"] - df_activities[\"date\"].dt.normalize()\n", "df_activities[\"date\"] = df_activities[\"date\"].dt.normalize()\n", "\n", "df_activities[\"activity_pace_average\"] = df_activities[\"activity_pace_average\"].apply(pace_to_seconds)\n", "df_activities[\"activity_duration\"] = pd.to_timedelta(df_activities[\"activity_duration\"], errors=\"coerce\")\n", "df_activities[\"activity_duration_seconds\"] = df_activities[\"activity_duration\"].dt.total_seconds().fillna(0).astype(int)\n", "\n", "df_activities[\"activity_ending_time\"] = df_activities[\"activity_starting_time\"] + df_activities[\"activity_duration\"]\n" ] }, { "cell_type": "code", "execution_count": 18, "id": "2cbef16d", "metadata": {}, "outputs": [], "source": [ "numeric_columns = [\n", " \"activity_calories\",\n", " \"activity_heart_rate_average\",\n", " \"activity_pace_average\",\n", " \"activity_breathing_rate_average\",\n", "]\n", "\n", "for col in numeric_columns:\n", " if df_activities[col].dtype == \"object\":\n", " df_activities[col] = pd.to_numeric(df_activities[col].str.replace(',', '').replace('--', '0'), errors='coerce')\n", " else:\n", " df_activities[col] = pd.to_numeric(df_activities[col], errors='coerce')" ] }, { "cell_type": "markdown", "id": "708414b6", "metadata": {}, "source": [ "## Sleep" ] }, { "cell_type": "code", "execution_count": 19, "id": "d3ec20f3", "metadata": {}, "outputs": [], "source": [ "df_sleep[\"date\"] = pd.to_datetime(df_sleep[\"date\"], errors=\"coerce\")\n", "\n", "df_sleep = df_sleep[df_sleep[\"sleep_bedtime\"] != \"--\"]\n", "\n", "df_sleep[\"sleep_bedtime\"] = pd.to_timedelta(\n", " pd.to_datetime(df_sleep[\"sleep_bedtime\"].astype(str), format=\"%I:%M %p\").dt.hour * 3600 +\n", " pd.to_datetime(df_sleep[\"sleep_bedtime\"].astype(str), format=\"%I:%M %p\").dt.minute * 60,\n", " unit=\"s\"\n", ")\n", "\n", "# Handle AM times by adding 24 hours to times before noon\n", "mask = df_sleep[\"sleep_bedtime\"].dt.components['hours'] < 12\n", "df_sleep.loc[mask, \"sleep_bedtime\"] = df_sleep.loc[mask, \"sleep_bedtime\"] + pd.Timedelta(days=1)\n", "\n", "df_sleep[\"sleep_duration\"] = pd.to_timedelta(df_sleep[\"sleep_duration\"], errors=\"coerce\")\n", "df_sleep[\"sleep_duration_seconds\"] = (df_sleep[\"sleep_duration\"]).dt.total_seconds()\n", "df_sleep[\"sleep_duration_needed\"] = pd.to_timedelta(df_sleep[\"sleep_duration_needed\"], errors=\"coerce\")\n", "df_sleep[\"sleep_duration_needed_seconds\"] = (df_sleep[\"sleep_duration_needed\"]).dt.total_seconds() \n", "\n", "df_sleep[\"sleep_duration_needed_delta\"] = df_sleep[\"sleep_duration\"] - df_sleep[\"sleep_duration_needed\"]\n", "df_sleep[\"sleep_duration_needed_delta_seconds\"] = (df_sleep[\"sleep_duration_needed_delta\"]).dt.total_seconds()" ] }, { "cell_type": "code", "execution_count": 20, "id": "845cc713", "metadata": {}, "outputs": [], "source": [ "numeric_columns = [\n", " \"sleep_score\",\n", " \"sleep_resting_heart_rate\",\n", " \"sleep_hrv_status\",\n", " \"sleep_breathing_rate\",\n", "]\n", "\n", "for col in numeric_columns:\n", " if df_sleep[col].dtype == \"object\":\n", " df_sleep[col] = pd.to_numeric(df_sleep[col].str.replace(',', '').replace('--', '0'), errors='coerce')\n", " else:\n", " df_sleep[col] = pd.to_numeric(df_sleep[col], errors='coerce')" ] }, { "cell_type": "markdown", "id": "fabceba5", "metadata": {}, "source": [ "## Combined" ] }, { "cell_type": "code", "execution_count": 21, "id": "05da5fe7", "metadata": {}, "outputs": [], "source": [ "df_latest_activity = df_activities.sort_values('activity_ending_time').groupby('date', as_index=False).last()\n", "\n", "df_combined = pd.merge(df_latest_activity, df_sleep, on='date', how='right')\n", "\n", "if \"activity_ending_time\" in df_combined.columns and \"sleep_bedtime\" in df_combined.columns:\n", " df_combined[\"bedtime_activity_ending_delta\"] = df_combined[\"sleep_bedtime\"] - df_combined[\"activity_ending_time\"]\n" ] }, { "cell_type": "markdown", "id": "427af06c", "metadata": {}, "source": [ "## Save cleaned data" ] }, { "cell_type": "code", "execution_count": 22, "id": "6a8888ce", "metadata": {}, "outputs": [], "source": [ "df_combined.to_csv(\"data/cleaned/combined_activities_sleep.csv\", index=False)" ] }, { "cell_type": "markdown", "id": "730ab7c4", "metadata": {}, "source": [ "## Data overview" ] }, { "cell_type": "code", "execution_count": 23, "id": "47ffa998", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | date | \n", "activity_calories | \n", "activity_duration | \n", "activity_heart_rate_average | \n", "activity_pace_average | \n", "activity_breathing_rate_average | \n", "activity_starting_time | \n", "activity_duration_seconds | \n", "activity_ending_time | \n", "sleep_score | \n", "... | \n", "sleep_breathing_rate | \n", "sleep_hrv_status | \n", "sleep_duration | \n", "sleep_duration_needed | \n", "sleep_bedtime | \n", "sleep_duration_seconds | \n", "sleep_duration_needed_seconds | \n", "sleep_duration_needed_delta | \n", "sleep_duration_needed_delta_seconds | \n", "bedtime_activity_ending_delta | \n", "
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | \n", "2025-09-30 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "77 | \n", "... | \n", "11.38 | \n", "83 | \n", "0 days 06:47:00 | \n", "0 days 07:00:00 | \n", "0 days 23:22:00 | \n", "24420.0 | \n", "25200.0 | \n", "-1 days +23:47:00 | \n", "-780.0 | \n", "NaT | \n", "
| 1 | \n", "2025-09-29 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "73 | \n", "... | \n", "12.00 | \n", "84 | \n", "0 days 09:06:00 | \n", "0 days 08:40:00 | \n", "0 days 22:52:00 | \n", "32760.0 | \n", "31200.0 | \n", "0 days 00:26:00 | \n", "1560.0 | \n", "NaT | \n", "
| 2 | \n", "2025-09-28 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "34 | \n", "... | \n", "14.96 | \n", "84 | \n", "0 days 06:34:00 | \n", "0 days 07:40:00 | \n", "1 days 00:34:00 | \n", "23640.0 | \n", "27600.0 | \n", "-1 days +22:54:00 | \n", "-3960.0 | \n", "NaT | \n", "
| 3 | \n", "2025-09-27 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "93 | \n", "... | \n", "11.13 | \n", "92 | \n", "0 days 08:32:00 | \n", "0 days 07:40:00 | \n", "0 days 22:39:00 | \n", "30720.0 | \n", "27600.0 | \n", "0 days 00:52:00 | \n", "3120.0 | \n", "NaT | \n", "
| 4 | \n", "2025-09-26 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "97 | \n", "... | \n", "11.15 | \n", "90 | \n", "0 days 07:50:00 | \n", "0 days 07:40:00 | \n", "0 days 22:07:00 | \n", "28200.0 | \n", "27600.0 | \n", "0 days 00:10:00 | \n", "600.0 | \n", "NaT | \n", "
| 5 | \n", "2025-09-25 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "94 | \n", "... | \n", "10.92 | \n", "87 | \n", "0 days 07:31:00 | \n", "0 days 07:40:00 | \n", "0 days 22:25:00 | \n", "27060.0 | \n", "27600.0 | \n", "-1 days +23:51:00 | \n", "-540.0 | \n", "NaT | \n", "
| 6 | \n", "2025-09-24 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "80 | \n", "... | \n", "10.83 | \n", "87 | \n", "0 days 07:35:00 | \n", "0 days 07:10:00 | \n", "1 days 00:20:00 | \n", "27300.0 | \n", "25800.0 | \n", "0 days 00:25:00 | \n", "1500.0 | \n", "NaT | \n", "
| 7 | \n", "2025-09-23 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "90 | \n", "... | \n", "12.50 | \n", "88 | \n", "0 days 07:49:00 | \n", "0 days 08:00:00 | \n", "0 days 23:36:00 | \n", "28140.0 | \n", "28800.0 | \n", "-1 days +23:49:00 | \n", "-660.0 | \n", "NaT | \n", "
| 8 | \n", "2025-09-22 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "76 | \n", "... | \n", "12.62 | \n", "91 | \n", "0 days 10:01:00 | \n", "0 days 08:30:00 | \n", "0 days 22:01:00 | \n", "36060.0 | \n", "30600.0 | \n", "0 days 01:31:00 | \n", "5460.0 | \n", "NaT | \n", "
| 9 | \n", "2025-09-21 | \n", "2817.0 | \n", "0 days 04:35:15 | \n", "148.0 | \n", "387.0 | \n", "30.0 | \n", "0 days 09:53:57 | \n", "16515.0 | \n", "0 days 14:29:12 | \n", "99 | \n", "... | \n", "10.79 | \n", "95 | \n", "0 days 08:37:00 | \n", "0 days 08:00:00 | \n", "0 days 21:08:00 | \n", "31020.0 | \n", "28800.0 | \n", "0 days 00:37:00 | \n", "2220.0 | \n", "0 days 06:38:48 | \n", "
| 10 | \n", "2025-09-20 | \n", "246.0 | \n", "0 days 00:20:13 | \n", "144.0 | \n", "326.0 | \n", "30.0 | \n", "0 days 15:18:50 | \n", "1213.0 | \n", "0 days 15:39:03 | \n", "72 | \n", "... | \n", "12.53 | \n", "86 | \n", "0 days 06:15:00 | \n", "0 days 07:40:00 | \n", "0 days 21:06:00 | \n", "22500.0 | \n", "27600.0 | \n", "-1 days +22:35:00 | \n", "-5100.0 | \n", "0 days 05:26:57 | \n", "
| 11 | \n", "2025-09-19 | \n", "210.0 | \n", "0 days 00:30:18 | \n", "116.0 | \n", "25.4 | \n", "0.0 | \n", "0 days 12:31:00 | \n", "1818.0 | \n", "0 days 13:01:18 | \n", "82 | \n", "... | \n", "11.81 | \n", "87 | \n", "0 days 08:07:00 | \n", "0 days 07:30:00 | \n", "0 days 22:40:00 | \n", "29220.0 | \n", "27000.0 | \n", "0 days 00:37:00 | \n", "2220.0 | \n", "0 days 09:38:42 | \n", "
| 12 | \n", "2025-09-18 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "93 | \n", "... | \n", "11.59 | \n", "90 | \n", "0 days 08:15:00 | \n", "0 days 07:20:00 | \n", "0 days 22:39:00 | \n", "29700.0 | \n", "26400.0 | \n", "0 days 00:55:00 | \n", "3300.0 | \n", "NaT | \n", "
| 13 | \n", "2025-09-17 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "90 | \n", "... | \n", "11.17 | \n", "91 | \n", "0 days 08:55:00 | \n", "0 days 07:00:00 | \n", "0 days 22:17:00 | \n", "32100.0 | \n", "25200.0 | \n", "0 days 01:55:00 | \n", "6900.0 | \n", "NaT | \n", "
| 14 | \n", "2025-09-16 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "85 | \n", "... | \n", "10.58 | \n", "90 | \n", "0 days 09:27:00 | \n", "0 days 08:40:00 | \n", "0 days 21:21:00 | \n", "34020.0 | \n", "31200.0 | \n", "0 days 00:47:00 | \n", "2820.0 | \n", "NaT | \n", "
| 15 | \n", "2025-09-15 | \n", "350.0 | \n", "0 days 00:30:39 | \n", "133.0 | \n", "328.0 | \n", "26.0 | \n", "0 days 11:16:13 | \n", "1839.0 | \n", "0 days 11:46:52 | \n", "100 | \n", "... | \n", "10.00 | \n", "90 | \n", "0 days 07:57:00 | \n", "0 days 09:00:00 | \n", "0 days 22:57:00 | \n", "28620.0 | \n", "32400.0 | \n", "-1 days +22:57:00 | \n", "-3780.0 | \n", "0 days 11:10:08 | \n", "
| 16 | \n", "2025-09-14 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "16 | \n", "... | \n", "16.69 | \n", "85 | \n", "0 days 01:16:00 | \n", "0 days 08:00:00 | \n", "1 days 05:43:00 | \n", "4560.0 | \n", "28800.0 | \n", "-1 days +17:16:00 | \n", "-24240.0 | \n", "NaT | \n", "
| 17 | \n", "2025-09-13 | \n", "549.0 | \n", "0 days 00:44:56 | \n", "144.0 | \n", "299.0 | \n", "32.0 | \n", "0 days 10:51:36 | \n", "2696.0 | \n", "0 days 11:36:32 | \n", "80 | \n", "... | \n", "11.71 | \n", "93 | \n", "0 days 07:25:00 | \n", "0 days 08:00:00 | \n", "1 days 00:22:00 | \n", "26700.0 | \n", "28800.0 | \n", "-1 days +23:25:00 | \n", "-2100.0 | \n", "0 days 12:45:28 | \n", "
| 18 | \n", "2025-09-12 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "94 | \n", "... | \n", "10.94 | \n", "94 | \n", "0 days 07:51:00 | \n", "0 days 08:00:00 | \n", "0 days 22:10:00 | \n", "28260.0 | \n", "28800.0 | \n", "-1 days +23:51:00 | \n", "-540.0 | \n", "NaT | \n", "
| 19 | \n", "2025-09-11 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "93 | \n", "... | \n", "10.60 | \n", "91 | \n", "0 days 07:44:00 | \n", "0 days 08:00:00 | \n", "0 days 22:14:00 | \n", "27840.0 | \n", "28800.0 | \n", "-1 days +23:44:00 | \n", "-960.0 | \n", "NaT | \n", "
| 20 | \n", "2025-09-10 | \n", "573.0 | \n", "0 days 00:50:07 | \n", "135.0 | \n", "322.0 | \n", "29.0 | \n", "0 days 14:20:09 | \n", "3007.0 | \n", "0 days 15:10:16 | \n", "91 | \n", "... | \n", "10.97 | \n", "91 | \n", "0 days 07:55:00 | \n", "0 days 08:00:00 | \n", "0 days 22:08:00 | \n", "28500.0 | \n", "28800.0 | \n", "-1 days +23:55:00 | \n", "-300.0 | \n", "0 days 06:57:44 | \n", "
| 21 | \n", "2025-09-09 | \n", "491.0 | \n", "0 days 00:40:03 | \n", "143.0 | \n", "294.0 | \n", "32.0 | \n", "0 days 17:04:58 | \n", "2403.0 | \n", "0 days 17:45:01 | \n", "89 | \n", "... | \n", "11.18 | \n", "89 | \n", "0 days 07:57:00 | \n", "0 days 08:00:00 | \n", "0 days 22:02:00 | \n", "28620.0 | \n", "28800.0 | \n", "-1 days +23:57:00 | \n", "-180.0 | \n", "0 days 04:16:59 | \n", "
| 22 | \n", "2025-09-08 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "59 | \n", "... | \n", "13.22 | \n", "89 | \n", "0 days 08:00:00 | \n", "0 days 08:00:00 | \n", "0 days 23:02:00 | \n", "28800.0 | \n", "28800.0 | \n", "0 days 00:00:00 | \n", "0.0 | \n", "NaT | \n", "
| 23 | \n", "2025-09-07 | \n", "873.0 | \n", "0 days 01:19:19 | \n", "136.0 | \n", "337.0 | \n", "29.0 | \n", "0 days 09:59:26 | \n", "4759.0 | \n", "0 days 11:18:45 | \n", "84 | \n", "... | \n", "11.09 | \n", "96 | \n", "0 days 07:48:00 | \n", "0 days 08:00:00 | \n", "0 days 23:59:00 | \n", "28080.0 | \n", "28800.0 | \n", "-1 days +23:48:00 | \n", "-720.0 | \n", "0 days 12:40:15 | \n", "
| 24 | \n", "2025-09-06 | \n", "510.0 | \n", "0 days 00:43:57 | \n", "141.0 | \n", "335.0 | \n", "30.0 | \n", "0 days 17:24:49 | \n", "2637.0 | \n", "0 days 18:08:46 | \n", "97 | \n", "... | \n", "10.47 | \n", "95 | \n", "0 days 07:57:00 | \n", "0 days 08:30:00 | \n", "0 days 23:37:00 | \n", "28620.0 | \n", "30600.0 | \n", "-1 days +23:27:00 | \n", "-1980.0 | \n", "0 days 05:28:14 | \n", "
| 25 | \n", "2025-09-05 | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaT | \n", "NaN | \n", "NaT | \n", "76 | \n", "... | \n", "11.39 | \n", "93 | \n", "0 days 06:51:00 | \n", "0 days 08:00:00 | \n", "0 days 23:23:00 | \n", "24660.0 | \n", "28800.0 | \n", "-1 days +22:51:00 | \n", "-4140.0 | \n", "NaT | \n", "
| 26 | \n", "2025-09-04 | \n", "511.0 | \n", "0 days 00:44:12 | \n", "137.0 | \n", "331.0 | \n", "30.0 | \n", "0 days 11:37:25 | \n", "2652.0 | \n", "0 days 12:21:37 | \n", "84 | \n", "... | \n", "11.00 | \n", "96 | \n", "0 days 07:05:00 | \n", "0 days 08:00:00 | \n", "0 days 22:55:00 | \n", "25500.0 | \n", "28800.0 | \n", "-1 days +23:05:00 | \n", "-3300.0 | \n", "0 days 10:33:23 | \n", "
| 27 | \n", "2025-09-03 | \n", "326.0 | \n", "0 days 01:19:34 | \n", "93.0 | \n", "0.0 | \n", "19.0 | \n", "0 days 19:14:22 | \n", "4774.0 | \n", "0 days 20:33:56 | \n", "86 | \n", "... | \n", "11.14 | \n", "97 | \n", "0 days 07:43:00 | \n", "0 days 08:00:00 | \n", "0 days 22:18:00 | \n", "27780.0 | \n", "28800.0 | \n", "-1 days +23:43:00 | \n", "-1020.0 | \n", "0 days 01:44:04 | \n", "
| 28 | \n", "2025-09-02 | \n", "605.0 | \n", "0 days 00:50:10 | \n", "141.0 | \n", "305.0 | \n", "32.0 | \n", "0 days 18:00:24 | \n", "3010.0 | \n", "0 days 18:50:34 | \n", "95 | \n", "... | \n", "11.00 | \n", "98 | \n", "0 days 07:50:00 | \n", "0 days 08:00:00 | \n", "0 days 22:06:00 | \n", "28200.0 | \n", "28800.0 | \n", "-1 days +23:50:00 | \n", "-600.0 | \n", "0 days 03:15:26 | \n", "
| 29 | \n", "2025-09-01 | \n", "301.0 | \n", "0 days 00:32:51 | \n", "117.0 | \n", "33.9 | \n", "0.0 | \n", "0 days 17:57:55 | \n", "1971.0 | \n", "0 days 18:30:46 | \n", "92 | \n", "... | \n", "10.81 | \n", "98 | \n", "0 days 08:04:00 | \n", "0 days 08:40:00 | \n", "0 days 21:53:00 | \n", "29040.0 | \n", "31200.0 | \n", "-1 days +23:24:00 | \n", "-2160.0 | \n", "0 days 03:22:14 | \n", "
30 rows × 21 columns
\n", "