From 90d543f81085773002727635a63e7fa6ccf4261d Mon Sep 17 00:00:00 2001 From: vitor-aignosi Date: Mon, 22 Dec 2025 14:10:58 -0300 Subject: [PATCH] SIENTIAPDE-1445 Update tests.ipynb to improve execution count management and enhance data handling - Adjusted execution counts for various code cells to maintain consistent state. - Added error handling for KeyError in API response processing. - Updated data processing logic to include timestamp formatting and CSV export functionality. --- tests.ipynb | 576 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 547 insertions(+), 29 deletions(-) diff --git a/tests.ipynb b/tests.ipynb index e76c07c..79f937d 100644 --- a/tests.ipynb +++ b/tests.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 12, "id": "9d16b24a", "metadata": {}, "outputs": [], @@ -38,7 +38,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "id": "5e344fb0", "metadata": {}, "outputs": [], @@ -103,7 +103,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 14, "id": "9350bff3", "metadata": {}, "outputs": [], @@ -118,7 +118,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 15, "id": "45712d7a", "metadata": {}, "outputs": [], @@ -143,7 +143,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 16, "id": "d065d0de", "metadata": {}, "outputs": [ @@ -168,10 +168,22 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 17, "id": "72af4236", "metadata": {}, - "outputs": [], + "outputs": [ + { + "ename": "KeyError", + "evalue": "'Items'", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mKeyError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[17]\u001b[39m\u001b[32m, line 42\u001b[39m\n\u001b[32m 39\u001b[39m \u001b[38;5;28;01mfor\u001b[39;00m tag \u001b[38;5;129;01min\u001b[39;00m TAG_NAMES:\n\u001b[32m 40\u001b[39m response = requests.get(url.replace(\u001b[33m'\u001b[39m\u001b[38;5;132;01m{tag}\u001b[39;00m\u001b[33m'\u001b[39m, tag), headers=headers).json()\n\u001b[32m 41\u001b[39m web_ids[tag] = {\n\u001b[32m---> \u001b[39m\u001b[32m42\u001b[39m \u001b[33m'\u001b[39m\u001b[33mwebid\u001b[39m\u001b[33m'\u001b[39m: \u001b[43mresponse\u001b[49m\u001b[43m[\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mItems\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m]\u001b[49m[\u001b[32m0\u001b[39m][\u001b[33m'\u001b[39m\u001b[33mWebId\u001b[39m\u001b[33m'\u001b[39m],\n\u001b[32m 43\u001b[39m \u001b[33m'\u001b[39m\u001b[33maggr_func\u001b[39m\u001b[33m'\u001b[39m: \u001b[33m'\u001b[39m\u001b[33mlts\u001b[39m\u001b[33m'\u001b[39m,\n\u001b[32m 44\u001b[39m \u001b[33m'\u001b[39m\u001b[33mdata_range\u001b[39m\u001b[33m'\u001b[39m: [-\u001b[32m100000\u001b[39m, \u001b[32m100000\u001b[39m],\n\u001b[32m 45\u001b[39m }\n\u001b[32m 46\u001b[39m sleep(\u001b[32m0.5\u001b[39m)\n", + "\u001b[31mKeyError\u001b[39m: 'Items'" + ] + } + ], "source": [ "import requests\n", "from time import sleep\n", @@ -223,7 +235,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": null, "id": "55793801", "metadata": {}, "outputs": [ @@ -366,7 +378,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": null, "id": "2e0e3d5a", "metadata": {}, "outputs": [ @@ -410,35 +422,541 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 18, "id": "f8c425e2", "metadata": {}, "outputs": [ { - "ename": "ValueError", - "evalue": "Index contains duplicate entries, cannot reshape", - "output_type": "error", - "traceback": [ - "\u001b[31m---------------------------------------------------------------------------\u001b[39m", - "\u001b[31mValueError\u001b[39m Traceback (most recent call last)", - "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[26]\u001b[39m\u001b[32m, line 4\u001b[39m\n\u001b[32m 1\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mpandas\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m read_csv\n\u001b[32m 3\u001b[39m df = read_csv(\u001b[33m'\u001b[39m\u001b[33m/home/grezewave/Downloads/laborious_data_202512181402.csv\u001b[39m\u001b[33m'\u001b[39m)\n\u001b[32m----> \u001b[39m\u001b[32m4\u001b[39m \u001b[43mdf\u001b[49m\u001b[43m.\u001b[49m\u001b[43mpivot\u001b[49m\u001b[43m(\u001b[49m\u001b[43mindex\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mtimestamp\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mvariable\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m=\u001b[49m\u001b[33;43m'\u001b[39;49m\u001b[33;43mvalue\u001b[39;49m\u001b[33;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[32m 6\u001b[39m display(df)\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/projects/sientia/sientia-dataops-scouter_temporal/venv/lib/python3.11/site-packages/pandas/core/frame.py:9339\u001b[39m, in \u001b[36mDataFrame.pivot\u001b[39m\u001b[34m(self, columns, index, values)\u001b[39m\n\u001b[32m 9332\u001b[39m \u001b[38;5;129m@Substitution\u001b[39m(\u001b[33m\"\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 9333\u001b[39m \u001b[38;5;129m@Appender\u001b[39m(_shared_docs[\u001b[33m\"\u001b[39m\u001b[33mpivot\u001b[39m\u001b[33m\"\u001b[39m])\n\u001b[32m 9334\u001b[39m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34mpivot\u001b[39m(\n\u001b[32m 9335\u001b[39m \u001b[38;5;28mself\u001b[39m, *, columns, index=lib.no_default, values=lib.no_default\n\u001b[32m 9336\u001b[39m ) -> DataFrame:\n\u001b[32m 9337\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mpandas\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mcore\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mreshape\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mpivot\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m pivot\n\u001b[32m-> \u001b[39m\u001b[32m9339\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mpivot\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mindex\u001b[49m\u001b[43m=\u001b[49m\u001b[43mindex\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcolumns\u001b[49m\u001b[43m=\u001b[49m\u001b[43mcolumns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m=\u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/projects/sientia/sientia-dataops-scouter_temporal/venv/lib/python3.11/site-packages/pandas/core/reshape/pivot.py:570\u001b[39m, in \u001b[36mpivot\u001b[39m\u001b[34m(data, columns, index, values)\u001b[39m\n\u001b[32m 566\u001b[39m indexed = data._constructor_sliced(data[values]._values, index=multiindex)\n\u001b[32m 567\u001b[39m \u001b[38;5;66;03m# error: Argument 1 to \"unstack\" of \"DataFrame\" has incompatible type \"Union\u001b[39;00m\n\u001b[32m 568\u001b[39m \u001b[38;5;66;03m# [List[Any], ExtensionArray, ndarray[Any, Any], Index, Series]\"; expected\u001b[39;00m\n\u001b[32m 569\u001b[39m \u001b[38;5;66;03m# \"Hashable\"\u001b[39;00m\n\u001b[32m--> \u001b[39m\u001b[32m570\u001b[39m result = \u001b[43mindexed\u001b[49m\u001b[43m.\u001b[49m\u001b[43munstack\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcolumns_listlike\u001b[49m\u001b[43m)\u001b[49m \u001b[38;5;66;03m# type: ignore[arg-type]\u001b[39;00m\n\u001b[32m 571\u001b[39m result.index.names = [\n\u001b[32m 572\u001b[39m name \u001b[38;5;28;01mif\u001b[39;00m name \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m lib.no_default \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01mfor\u001b[39;00m name \u001b[38;5;129;01min\u001b[39;00m result.index.names\n\u001b[32m 573\u001b[39m ]\n\u001b[32m 575\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m result\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/projects/sientia/sientia-dataops-scouter_temporal/venv/lib/python3.11/site-packages/pandas/core/series.py:4615\u001b[39m, in \u001b[36mSeries.unstack\u001b[39m\u001b[34m(self, level, fill_value, sort)\u001b[39m\n\u001b[32m 4570\u001b[39m \u001b[38;5;250m\u001b[39m\u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 4571\u001b[39m \u001b[33;03mUnstack, also known as pivot, Series with MultiIndex to produce DataFrame.\u001b[39;00m\n\u001b[32m 4572\u001b[39m \n\u001b[32m (...)\u001b[39m\u001b[32m 4611\u001b[39m \u001b[33;03mb 2 4\u001b[39;00m\n\u001b[32m 4612\u001b[39m \u001b[33;03m\"\"\"\u001b[39;00m\n\u001b[32m 4613\u001b[39m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[34;01mpandas\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mcore\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mreshape\u001b[39;00m\u001b[34;01m.\u001b[39;00m\u001b[34;01mreshape\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m unstack\n\u001b[32m-> \u001b[39m\u001b[32m4615\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43munstack\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlevel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfill_value\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/projects/sientia/sientia-dataops-scouter_temporal/venv/lib/python3.11/site-packages/pandas/core/reshape/reshape.py:517\u001b[39m, in \u001b[36munstack\u001b[39m\u001b[34m(obj, level, fill_value, sort)\u001b[39m\n\u001b[32m 515\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m is_1d_only_ea_dtype(obj.dtype):\n\u001b[32m 516\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m _unstack_extension_series(obj, level, fill_value, sort=sort)\n\u001b[32m--> \u001b[39m\u001b[32m517\u001b[39m unstacker = \u001b[43m_Unstacker\u001b[49m\u001b[43m(\u001b[49m\n\u001b[32m 518\u001b[39m \u001b[43m \u001b[49m\u001b[43mobj\u001b[49m\u001b[43m.\u001b[49m\u001b[43mindex\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlevel\u001b[49m\u001b[43m=\u001b[49m\u001b[43mlevel\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconstructor\u001b[49m\u001b[43m=\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m.\u001b[49m\u001b[43m_constructor_expanddim\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msort\u001b[49m\u001b[43m=\u001b[49m\u001b[43msort\u001b[49m\n\u001b[32m 519\u001b[39m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[32m 520\u001b[39m \u001b[38;5;28;01mreturn\u001b[39;00m unstacker.get_result(\n\u001b[32m 521\u001b[39m obj._values, value_columns=\u001b[38;5;28;01mNone\u001b[39;00m, fill_value=fill_value\n\u001b[32m 522\u001b[39m )\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/projects/sientia/sientia-dataops-scouter_temporal/venv/lib/python3.11/site-packages/pandas/core/reshape/reshape.py:154\u001b[39m, in \u001b[36m_Unstacker.__init__\u001b[39m\u001b[34m(self, index, level, constructor, sort)\u001b[39m\n\u001b[32m 146\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m num_cells > np.iinfo(np.int32).max:\n\u001b[32m 147\u001b[39m warnings.warn(\n\u001b[32m 148\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33mThe following operation may generate \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mnum_cells\u001b[38;5;132;01m}\u001b[39;00m\u001b[33m cells \u001b[39m\u001b[33m\"\u001b[39m\n\u001b[32m 149\u001b[39m \u001b[33mf\u001b[39m\u001b[33m\"\u001b[39m\u001b[33min the resulting pandas object.\u001b[39m\u001b[33m\"\u001b[39m,\n\u001b[32m 150\u001b[39m PerformanceWarning,\n\u001b[32m 151\u001b[39m stacklevel=find_stack_level(),\n\u001b[32m 152\u001b[39m )\n\u001b[32m--> \u001b[39m\u001b[32m154\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[43m.\u001b[49m\u001b[43m_make_selectors\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n", - "\u001b[36mFile \u001b[39m\u001b[32m~/Documents/projects/sientia/sientia-dataops-scouter_temporal/venv/lib/python3.11/site-packages/pandas/core/reshape/reshape.py:210\u001b[39m, in \u001b[36m_Unstacker._make_selectors\u001b[39m\u001b[34m(self)\u001b[39m\n\u001b[32m 207\u001b[39m mask.put(selector, \u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[32m 209\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m mask.sum() < \u001b[38;5;28mlen\u001b[39m(\u001b[38;5;28mself\u001b[39m.index):\n\u001b[32m--> \u001b[39m\u001b[32m210\u001b[39m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\u001b[33m\"\u001b[39m\u001b[33mIndex contains duplicate entries, cannot reshape\u001b[39m\u001b[33m\"\u001b[39m)\n\u001b[32m 212\u001b[39m \u001b[38;5;28mself\u001b[39m.group_index = comp_index\n\u001b[32m 213\u001b[39m \u001b[38;5;28mself\u001b[39m.mask = mask\n", - "\u001b[31mValueError\u001b[39m: Index contains duplicate entries, cannot reshape" - ] + "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", + " \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", + " \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", + " \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", + " \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", + " \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", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
variableCI-J3J01S1CI-J3P01T1ACI-J3P03S1CI-W3A05F1CI-W3A50A1CI-W3A50A2CI-W3A50A3CI-W3A50P1CI-W3A50T1CI-W3A55P1...CI-W3V33P1CI-W3W01A1CI-W3W01A2CI-W3W01A3CI-W3W01G1CI-W3W01P1CI-W3W01P2CI-W3W03I1CI-W3W03S1timestamp
087.999020238.000000100.442688272.8691000.0833382.636171589.246400-0.923784383.722400-18.167961...259.5655000.0082204.190174376.848267600.466900-3.1095980.22179863.6058301545.502932025-12-17 22:12:42
187.999020238.000000100.442688272.6492000.0833382.267340618.462100-0.771080381.468872-17.495136...263.0998540.0082202.611867435.797668600.466900-3.0301560.15352765.7857061545.502932025-12-17 22:41:54
286.997925228.200012100.442688264.2253720.0823583.254068444.800200-0.789923389.007800-16.590466...223.3463130.0859279.447197343.596000600.000000-2.4367670.35028969.8865201616.154912025-12-18 19:08:08
386.997925228.200012100.442688266.7141720.0823612.444070481.586060-0.551620390.612854-16.791473...240.6614690.0859279.324739462.062256600.000000-3.0301560.20861664.6597301628.228762025-12-18 19:23:08
491.991210139.299988100.442688280.3923340.0823611.835279436.144100-0.486019387.727000-17.495136...249.9351650.0596025.359922367.250300600.000000-3.2863160.27637259.9493371691.234622025-12-18 19:31:54
590.001220230.000000100.442688268.8931580.0836232.572147410.169100-0.929219395.898200-16.390797...241.3099670.0020004.262301340.296700880.778200-3.6710640.24807565.1953901609.201542025-12-18 19:34:28
690.001220230.000000100.442688269.3590000.0836232.636187417.679138-0.837243396.060272-16.390797...239.3646240.0020003.964616318.547300935.914368-3.4776270.24807563.2846381609.201542025-12-18 19:35:19
790.001220230.000000100.442688268.6519780.0836232.483914404.910522-0.906091396.222473-16.390797...239.3646240.0020004.766942314.721130903.813232-3.7976250.24807564.6019741645.863892025-12-18 19:39:04
890.001220230.000000100.442688270.8364260.0836232.748308403.442100-0.939606396.222473-16.390797...239.3646240.0013624.637836325.616100909.961060-3.6057070.24807562.8696441646.514282025-12-18 19:40:58
990.001220227.700012100.442688270.7156370.0897542.644230425.803000-1.007370396.384521-16.725641...239.0402220.0013615.083293349.286682949.923500-3.7029830.20841365.8502961647.255372025-12-18 20:12:23
1090.001220227.700012100.442688270.6614380.0788592.628080435.462860-0.962243396.384521-17.031452...239.3644410.1086905.151842353.761353949.961060-3.7337880.20741364.7887401644.680422025-12-19 03:26:44
1190.001220227.700012100.442688270.7251590.0788592.628080424.227722-0.827545396.384521-17.031452...239.3644410.1086904.830516353.761353893.074000-3.7337880.20741364.7887401644.680422025-12-19 03:32:37
1290.001220227.700012100.442688269.9770200.0788593.799854350.998047-0.901527395.614441-18.777557...226.5562740.1086905.567447312.856700887.664734-3.4452010.18896765.3761441644.680422025-12-19 03:59:20
1390.001220227.700012100.442688269.0980000.0788593.325234401.663940-0.960138392.380127-16.966602...235.8625180.0251952.443661305.058400963.424100-3.6543450.18896764.8246601392.283942025-12-19 04:07:07
1489.000120133.000000100.442688280.5959000.0788592.347593453.182526-0.409587389.169952-15.958172...238.0998540.0251955.168004417.250244852.529200-3.7029830.26809562.1951981645.463262025-12-19 04:27:35
1591.002320130.000000100.442688283.0378420.1095972.547736364.069400-0.737562394.961900-18.296043...226.2309000.0730104.334429338.391663793.501953-4.7276260.00395972.8045961718.755862025-12-21 14:12:47
\n", + "

16 rows × 33 columns

\n", + "
" + ], + "text/plain": [ + "variable CI-J3J01S1 CI-J3P01T1A CI-J3P03S1 CI-W3A05F1 CI-W3A50A1 \\\n", + "0 87.999020 238.000000 100.442688 272.869100 0.083338 \n", + "1 87.999020 238.000000 100.442688 272.649200 0.083338 \n", + "2 86.997925 228.200012 100.442688 264.225372 0.082358 \n", + "3 86.997925 228.200012 100.442688 266.714172 0.082361 \n", + "4 91.991210 139.299988 100.442688 280.392334 0.082361 \n", + "5 90.001220 230.000000 100.442688 268.893158 0.083623 \n", + "6 90.001220 230.000000 100.442688 269.359000 0.083623 \n", + "7 90.001220 230.000000 100.442688 268.651978 0.083623 \n", + "8 90.001220 230.000000 100.442688 270.836426 0.083623 \n", + "9 90.001220 227.700012 100.442688 270.715637 0.089754 \n", + "10 90.001220 227.700012 100.442688 270.661438 0.078859 \n", + "11 90.001220 227.700012 100.442688 270.725159 0.078859 \n", + "12 90.001220 227.700012 100.442688 269.977020 0.078859 \n", + "13 90.001220 227.700012 100.442688 269.098000 0.078859 \n", + "14 89.000120 133.000000 100.442688 280.595900 0.078859 \n", + "15 91.002320 130.000000 100.442688 283.037842 0.109597 \n", + "\n", + "variable CI-W3A50A2 CI-W3A50A3 CI-W3A50P1 CI-W3A50T1 CI-W3A55P1 ... \\\n", + "0 2.636171 589.246400 -0.923784 383.722400 -18.167961 ... \n", + "1 2.267340 618.462100 -0.771080 381.468872 -17.495136 ... \n", + "2 3.254068 444.800200 -0.789923 389.007800 -16.590466 ... \n", + "3 2.444070 481.586060 -0.551620 390.612854 -16.791473 ... \n", + "4 1.835279 436.144100 -0.486019 387.727000 -17.495136 ... \n", + "5 2.572147 410.169100 -0.929219 395.898200 -16.390797 ... \n", + "6 2.636187 417.679138 -0.837243 396.060272 -16.390797 ... \n", + "7 2.483914 404.910522 -0.906091 396.222473 -16.390797 ... \n", + "8 2.748308 403.442100 -0.939606 396.222473 -16.390797 ... \n", + "9 2.644230 425.803000 -1.007370 396.384521 -16.725641 ... \n", + "10 2.628080 435.462860 -0.962243 396.384521 -17.031452 ... \n", + "11 2.628080 424.227722 -0.827545 396.384521 -17.031452 ... \n", + "12 3.799854 350.998047 -0.901527 395.614441 -18.777557 ... \n", + "13 3.325234 401.663940 -0.960138 392.380127 -16.966602 ... \n", + "14 2.347593 453.182526 -0.409587 389.169952 -15.958172 ... \n", + "15 2.547736 364.069400 -0.737562 394.961900 -18.296043 ... \n", + "\n", + "variable CI-W3V33P1 CI-W3W01A1 CI-W3W01A2 CI-W3W01A3 CI-W3W01G1 \\\n", + "0 259.565500 0.008220 4.190174 376.848267 600.466900 \n", + "1 263.099854 0.008220 2.611867 435.797668 600.466900 \n", + "2 223.346313 0.085927 9.447197 343.596000 600.000000 \n", + "3 240.661469 0.085927 9.324739 462.062256 600.000000 \n", + "4 249.935165 0.059602 5.359922 367.250300 600.000000 \n", + "5 241.309967 0.002000 4.262301 340.296700 880.778200 \n", + "6 239.364624 0.002000 3.964616 318.547300 935.914368 \n", + "7 239.364624 0.002000 4.766942 314.721130 903.813232 \n", + "8 239.364624 0.001362 4.637836 325.616100 909.961060 \n", + "9 239.040222 0.001361 5.083293 349.286682 949.923500 \n", + "10 239.364441 0.108690 5.151842 353.761353 949.961060 \n", + "11 239.364441 0.108690 4.830516 353.761353 893.074000 \n", + "12 226.556274 0.108690 5.567447 312.856700 887.664734 \n", + "13 235.862518 0.025195 2.443661 305.058400 963.424100 \n", + "14 238.099854 0.025195 5.168004 417.250244 852.529200 \n", + "15 226.230900 0.073010 4.334429 338.391663 793.501953 \n", + "\n", + "variable CI-W3W01P1 CI-W3W01P2 CI-W3W03I1 CI-W3W03S1 timestamp \n", + "0 -3.109598 0.221798 63.605830 1545.50293 2025-12-17 22:12:42 \n", + "1 -3.030156 0.153527 65.785706 1545.50293 2025-12-17 22:41:54 \n", + "2 -2.436767 0.350289 69.886520 1616.15491 2025-12-18 19:08:08 \n", + "3 -3.030156 0.208616 64.659730 1628.22876 2025-12-18 19:23:08 \n", + "4 -3.286316 0.276372 59.949337 1691.23462 2025-12-18 19:31:54 \n", + "5 -3.671064 0.248075 65.195390 1609.20154 2025-12-18 19:34:28 \n", + "6 -3.477627 0.248075 63.284638 1609.20154 2025-12-18 19:35:19 \n", + "7 -3.797625 0.248075 64.601974 1645.86389 2025-12-18 19:39:04 \n", + "8 -3.605707 0.248075 62.869644 1646.51428 2025-12-18 19:40:58 \n", + "9 -3.702983 0.208413 65.850296 1647.25537 2025-12-18 20:12:23 \n", + "10 -3.733788 0.207413 64.788740 1644.68042 2025-12-19 03:26:44 \n", + "11 -3.733788 0.207413 64.788740 1644.68042 2025-12-19 03:32:37 \n", + "12 -3.445201 0.188967 65.376144 1644.68042 2025-12-19 03:59:20 \n", + "13 -3.654345 0.188967 64.824660 1392.28394 2025-12-19 04:07:07 \n", + "14 -3.702983 0.268095 62.195198 1645.46326 2025-12-19 04:27:35 \n", + "15 -4.727626 0.003959 72.804596 1718.75586 2025-12-21 14:12:47 \n", + "\n", + "[16 rows x 33 columns]" + ] + }, + "metadata": {}, + "output_type": "display_data" } ], "source": [ - "from pandas import read_csv\n", + "from pandas import read_csv, to_datetime\n", "\n", - "df = read_csv('/home/grezewave/Downloads/laborious_data_202512181402.csv')\n", - "df.pivot(index='timestamp', columns='variable', values='value')\n", + "df = read_csv('/home/grezewave/Downloads/laborious_data_202512220821.csv')\n", + "data = df.pivot(index='timestamp', columns='variable', values='value')\n", + "data['timestamp'] = data.index\n", "\n", - "display(df)" + "#Remove tz from timestamp\n", + "data['timestamp'] = to_datetime(data['timestamp'])\n", + "data['timestamp'] = data['timestamp'].dt.tz_localize(None)\n", + "\n", + "# Back to string and add \"\"\n", + "data['timestamp'] = data['timestamp'].dt.strftime('%Y-%m-%d %H:%M:%S')\n", + "data.reset_index(drop=True, inplace=True)\n", + "data.to_csv('VC-model-data.csv', index=False)\n", + "\n", + "display(data)" ] } ],