Skip to content

Instantly share code, notes, and snippets.

@stabgan
Created October 12, 2018 13:22
Show Gist options
  • Save stabgan/0fd6ab3cec87740acca748f6fc775887 to your computer and use it in GitHub Desktop.
Save stabgan/0fd6ab3cec87740acca748f6fc775887 to your computer and use it in GitHub Desktop.
pca
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "pca",
"version": "0.3.2",
"provenance": [],
"collapsed_sections": [],
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "TPU"
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"[View in Colaboratory](https://colab.research.google.com/gist/stabgan/0fd6ab3cec87740acca748f6fc775887/pca.ipynb)"
]
},
{
"metadata": {
"id": "DXz9KJGNRBUR",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# **PRINCIPLE COMPONENT ANALYSIS :** \n",
"\n",
"*PringData | Author : Kaustabh Ganguly*\n",
"\n",
"**Input : A Datasheet**\n",
"\n",
"**Output : A Datasheet of 'k' columns with highest covariance**\n"
]
},
{
"metadata": {
"id": "elH7UGagSWkO",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"------------\n",
"\n"
]
},
{
"metadata": {
"id": "4qBvQSaMQwGk",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"**Importing PyTorch in Google Colaboratory (skip this step for other OS/Environment)**"
]
},
{
"metadata": {
"id": "UFGm8gOy0o-3",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"from os.path import exists\n",
"from wheel.pep425tags import get_abbr_impl, get_impl_ver, get_abi_tag\n",
"platform = '{}{}-{}'.format(get_abbr_impl(), get_impl_ver(), get_abi_tag())\n",
"cuda_output = !ldconfig -p|grep cudart.so|sed -e 's/.*\\.\\([0-9]*\\)\\.\\([0-9]*\\)$/cu\\1\\2/'\n",
"accelerator = cuda_output[0] if exists('/dev/nvidia0') else 'cpu'\n",
"\n",
"!pip install -q http://download.pytorch.org/whl/{accelerator}/torch-0.4.1-{platform}-linux_x86_64.whl torchvision\n",
"import torch"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "__bFspWiRxRb",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"**Importing LabelEncoder for encoding categorical variables at once before PCA tansformation**"
]
},
{
"metadata": {
"id": "g30Bnm3-3Pw3",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"from sklearn.preprocessing import LabelEncoder"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "jWp4JxINWhsg",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# PCA FUNCTION"
]
},
{
"metadata": {
"id": "kHTRROC60r97",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"def PCA(dataset, k=10):\n",
" ''' \n",
" Note : 'k' is the amount of principle components user wants\n",
" \n",
" Preprocessing Steps :\n",
" \n",
" 1. Extracting all the columns which have non numeric value into the dataframe 'categorical' .\n",
" 2. Deleting the categorical variables from the main dataframe .\n",
" 3. Running a loop and encoding categorical variables into numerical variables and storing it in 'encoded' .\n",
" 4. Concatenating the new encoded dataframe and the previous dataframe thus creating a dataframe with numeric digits .\n",
" \n",
" PCA Steps :\n",
" \n",
" 1. Converting numpy array to torch tensors .\n",
" 2. Taking out mean - column wise of every column and storing it in X_mean .\n",
" 3. Taking deviation from the original value and mean of the column in every column and storing it in 'X' .\n",
" 4. Using Single Value Decomposition function from pyTorch to find out the U,S,V value of the transpose of X .\n",
" \n",
" Here , U and V are orthogonal Matrix and S is the diagonal Matrix . \n",
" Dot product of S and it's transpose is the eigen value of the covariance of the matrix .\n",
" V is the eigen vectors representing the direction of variance in which it is maximum .\n",
" So , function returns U[all_rows , columns_upto_k] which is sorted in decreasing order to get the k principal components .\n",
" \n",
" 5. We are converting the torch tensor to the dataframe before returning so we get a similar file format as input .\n",
" \n",
" '''\n",
" \n",
" if k >= len(list(dataset)) :\n",
" return dataset\n",
" \n",
" # Preprocessing\n",
" categorical = dataset.loc[: , dataset.dtypes == 'object']\n",
" dataset.drop(list(categorical) , axis = 1, inplace=True)\n",
" c = categorical.values\n",
" encoded = []\n",
" for i in c :\n",
" label_encoder = LabelEncoder()\n",
" encoded.append(label_encoder.fit_transform(i))\n",
" encoded = np.array(encoded)\n",
" X = np.column_stack((dataset.values , encoded))\n",
" \n",
" #PCA\n",
"\n",
" X = torch.from_numpy(X)\n",
" X_mean = torch.mean(X,0) #all means of individual columns\n",
" X = X - X_mean.expand_as(X) #deviation from the mean of each individual column element\n",
"\n",
" # svd\n",
" U,S,V = torch.svd(torch.t(X)) \n",
"\n",
" return pd.DataFrame(torch.mm(X,U[:,:k]).numpy())"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "HFlLeDHBWe97",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# TESTING"
]
},
{
"metadata": {
"id": "G1gkDL-X1Yav",
"colab_type": "code",
"colab": {
"resources": {
"http://localhost:8080/nbextensions/google.colab/files.js": {
"data": "Ly8gQ29weXJpZ2h0IDIwMTcgR29vZ2xlIExMQwovLwovLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgovLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLy8KLy8gICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLy8KLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQovLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAovLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAovLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KCi8qKgogKiBAZmlsZW92ZXJ2aWV3IEhlbHBlcnMgZm9yIGdvb2dsZS5jb2xhYiBQeXRob24gbW9kdWxlLgogKi8KKGZ1bmN0aW9uKHNjb3BlKSB7CmZ1bmN0aW9uIHNwYW4odGV4dCwgc3R5bGVBdHRyaWJ1dGVzID0ge30pIHsKICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwogIGVsZW1lbnQudGV4dENvbnRlbnQgPSB0ZXh0OwogIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKHN0eWxlQXR0cmlidXRlcykpIHsKICAgIGVsZW1lbnQuc3R5bGVba2V5XSA9IHN0eWxlQXR0cmlidXRlc1trZXldOwogIH0KICByZXR1cm4gZWxlbWVudDsKfQoKLy8gTWF4IG51bWJlciBvZiBieXRlcyB3aGljaCB3aWxsIGJlIHVwbG9hZGVkIGF0IGEgdGltZS4KY29uc3QgTUFYX1BBWUxPQURfU0laRSA9IDEwMCAqIDEwMjQ7Ci8vIE1heCBhbW91bnQgb2YgdGltZSB0byBibG9jayB3YWl0aW5nIGZvciB0aGUgdXNlci4KY29uc3QgRklMRV9DSEFOR0VfVElNRU9VVF9NUyA9IDMwICogMTAwMDsKCmZ1bmN0aW9uIF91cGxvYWRGaWxlcyhpbnB1dElkLCBvdXRwdXRJZCkgewogIGNvbnN0IHN0ZXBzID0gdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKTsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIC8vIENhY2hlIHN0ZXBzIG9uIHRoZSBvdXRwdXRFbGVtZW50IHRvIG1ha2UgaXQgYXZhaWxhYmxlIGZvciB0aGUgbmV4dCBjYWxsCiAgLy8gdG8gdXBsb2FkRmlsZXNDb250aW51ZSBmcm9tIFB5dGhvbi4KICBvdXRwdXRFbGVtZW50LnN0ZXBzID0gc3RlcHM7CgogIHJldHVybiBfdXBsb2FkRmlsZXNDb250aW51ZShvdXRwdXRJZCk7Cn0KCi8vIFRoaXMgaXMgcm91Z2hseSBhbiBhc3luYyBnZW5lcmF0b3IgKG5vdCBzdXBwb3J0ZWQgaW4gdGhlIGJyb3dzZXIgeWV0KSwKLy8gd2hlcmUgdGhlcmUgYXJlIG11bHRpcGxlIGFzeW5jaHJvbm91cyBzdGVwcyBhbmQgdGhlIFB5dGhvbiBzaWRlIGlzIGdvaW5nCi8vIHRvIHBvbGwgZm9yIGNvbXBsZXRpb24gb2YgZWFjaCBzdGVwLgovLyBUaGlzIHVzZXMgYSBQcm9taXNlIHRvIGJsb2NrIHRoZSBweXRob24gc2lkZSBvbiBjb21wbGV0aW9uIG9mIGVhY2ggc3RlcCwKLy8gdGhlbiBwYXNzZXMgdGhlIHJlc3VsdCBvZiB0aGUgcHJldmlvdXMgc3RlcCBhcyB0aGUgaW5wdXQgdG8gdGhlIG5leHQgc3RlcC4KZnVuY3Rpb24gX3VwbG9hZEZpbGVzQ29udGludWUob3V0cHV0SWQpIHsKICBjb25zdCBvdXRwdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQob3V0cHV0SWQpOwogIGNvbnN0IHN0ZXBzID0gb3V0cHV0RWxlbWVudC5zdGVwczsKCiAgY29uc3QgbmV4dCA9IHN0ZXBzLm5leHQob3V0cHV0RWxlbWVudC5sYXN0UHJvbWlzZVZhbHVlKTsKICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5leHQudmFsdWUucHJvbWlzZSkudGhlbigodmFsdWUpID0+IHsKICAgIC8vIENhY2hlIHRoZSBsYXN0IHByb21pc2UgdmFsdWUgdG8gbWFrZSBpdCBhdmFpbGFibGUgdG8gdGhlIG5leHQKICAgIC8vIHN0ZXAgb2YgdGhlIGdlbmVyYXRvci4KICAgIG91dHB1dEVsZW1lbnQubGFzdFByb21pc2VWYWx1ZSA9IHZhbHVlOwogICAgcmV0dXJuIG5leHQudmFsdWUucmVzcG9uc2U7CiAgfSk7Cn0KCi8qKgogKiBHZW5lcmF0b3IgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIGJldHdlZW4gZWFjaCBhc3luYyBzdGVwIG9mIHRoZSB1cGxvYWQKICogcHJvY2Vzcy4KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0SWQgRWxlbWVudCBJRCBvZiB0aGUgaW5wdXQgZmlsZSBwaWNrZXIgZWxlbWVudC4KICogQHBhcmFtIHtzdHJpbmd9IG91dHB1dElkIEVsZW1lbnQgSUQgb2YgdGhlIG91dHB1dCBkaXNwbGF5LgogKiBAcmV0dXJuIHshSXRlcmFibGU8IU9iamVjdD59IEl0ZXJhYmxlIG9mIG5leHQgc3RlcHMuCiAqLwpmdW5jdGlvbiogdXBsb2FkRmlsZXNTdGVwKGlucHV0SWQsIG91dHB1dElkKSB7CiAgY29uc3QgaW5wdXRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaW5wdXRJZCk7CiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7CgogIGNvbnN0IG91dHB1dEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChvdXRwdXRJZCk7CiAgb3V0cHV0RWxlbWVudC5pbm5lckhUTUwgPSAnJzsKCiAgY29uc3QgcGlja2VkUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBpbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHsKICAgICAgcmVzb2x2ZShlLnRhcmdldC5maWxlcyk7CiAgICB9KTsKICB9KTsKCiAgY29uc3QgY2FuY2VsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYnV0dG9uJyk7CiAgaW5wdXRFbGVtZW50LnBhcmVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoY2FuY2VsKTsKICBjYW5jZWwudGV4dENvbnRlbnQgPSAnQ2FuY2VsIHVwbG9hZCc7CiAgY29uc3QgY2FuY2VsUHJvbWlzZSA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7CiAgICBjYW5jZWwub25jbGljayA9ICgpID0+IHsKICAgICAgcmVzb2x2ZShudWxsKTsKICAgIH07CiAgfSk7CgogIC8vIENhbmNlbCB1cGxvYWQgaWYgdXNlciBoYXNuJ3QgcGlja2VkIGFueXRoaW5nIGluIHRpbWVvdXQuCiAgY29uc3QgdGltZW91dFByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4gewogICAgc2V0VGltZW91dCgoKSA9PiB7CiAgICAgIHJlc29sdmUobnVsbCk7CiAgICB9LCBGSUxFX0NIQU5HRV9USU1FT1VUX01TKTsKICB9KTsKCiAgLy8gV2FpdCBmb3IgdGhlIHVzZXIgdG8gcGljayB0aGUgZmlsZXMuCiAgY29uc3QgZmlsZXMgPSB5aWVsZCB7CiAgICBwcm9taXNlOiBQcm9taXNlLnJhY2UoW3BpY2tlZFByb21pc2UsIHRpbWVvdXRQcm9taXNlLCBjYW5jZWxQcm9taXNlXSksCiAgICByZXNwb25zZTogewogICAgICBhY3Rpb246ICdzdGFydGluZycsCiAgICB9CiAgfTsKCiAgaWYgKCFmaWxlcykgewogICAgcmV0dXJuIHsKICAgICAgcmVzcG9uc2U6IHsKICAgICAgICBhY3Rpb246ICdjb21wbGV0ZScsCiAgICAgIH0KICAgIH07CiAgfQoKICBjYW5jZWwucmVtb3ZlKCk7CgogIC8vIERpc2FibGUgdGhlIGlucHV0IGVsZW1lbnQgc2luY2UgZnVydGhlciBwaWNrcyBhcmUgbm90IGFsbG93ZWQuCiAgaW5wdXRFbGVtZW50LmRpc2FibGVkID0gdHJ1ZTsKCiAgZm9yIChjb25zdCBmaWxlIG9mIGZpbGVzKSB7CiAgICBjb25zdCBsaSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CiAgICBsaS5hcHBlbmQoc3BhbihmaWxlLm5hbWUsIHtmb250V2VpZ2h0OiAnYm9sZCd9KSk7CiAgICBsaS5hcHBlbmQoc3BhbigKICAgICAgICBgKCR7ZmlsZS50eXBlIHx8ICduL2EnfSkgLSAke2ZpbGUuc2l6ZX0gYnl0ZXMsIGAgKwogICAgICAgIGBsYXN0IG1vZGlmaWVkOiAkewogICAgICAgICAgICBmaWxlLmxhc3RNb2RpZmllZERhdGUgPyBmaWxlLmxhc3RNb2RpZmllZERhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKCkgOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbi9hJ30gLSBgKSk7CiAgICBjb25zdCBwZXJjZW50ID0gc3BhbignMCUgZG9uZScpOwogICAgbGkuYXBwZW5kQ2hpbGQocGVyY2VudCk7CgogICAgb3V0cHV0RWxlbWVudC5hcHBlbmRDaGlsZChsaSk7CgogICAgY29uc3QgZmlsZURhdGFQcm9taXNlID0gbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsKICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTsKICAgICAgcmVhZGVyLm9ubG9hZCA9IChlKSA9PiB7CiAgICAgICAgcmVzb2x2ZShlLnRhcmdldC5yZXN1bHQpOwogICAgICB9OwogICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7CiAgICB9KTsKICAgIC8vIFdhaXQgZm9yIHRoZSBkYXRhIHRvIGJlIHJlYWR5LgogICAgbGV0IGZpbGVEYXRhID0geWllbGQgewogICAgICBwcm9taXNlOiBmaWxlRGF0YVByb21pc2UsCiAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgYWN0aW9uOiAnY29udGludWUnLAogICAgICB9CiAgICB9OwoKICAgIC8vIFVzZSBhIGNodW5rZWQgc2VuZGluZyB0byBhdm9pZCBtZXNzYWdlIHNpemUgbGltaXRzLiBTZWUgYi82MjExNTY2MC4KICAgIGxldCBwb3NpdGlvbiA9IDA7CiAgICB3aGlsZSAocG9zaXRpb24gPCBmaWxlRGF0YS5ieXRlTGVuZ3RoKSB7CiAgICAgIGNvbnN0IGxlbmd0aCA9IE1hdGgubWluKGZpbGVEYXRhLmJ5dGVMZW5ndGggLSBwb3NpdGlvbiwgTUFYX1BBWUxPQURfU0laRSk7CiAgICAgIGNvbnN0IGNodW5rID0gbmV3IFVpbnQ4QXJyYXkoZmlsZURhdGEsIHBvc2l0aW9uLCBsZW5ndGgpOwogICAgICBwb3NpdGlvbiArPSBsZW5ndGg7CgogICAgICBjb25zdCBiYXNlNjQgPSBidG9hKFN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCwgY2h1bmspKTsKICAgICAgeWllbGQgewogICAgICAgIHJlc3BvbnNlOiB7CiAgICAgICAgICBhY3Rpb246ICdhcHBlbmQnLAogICAgICAgICAgZmlsZTogZmlsZS5uYW1lLAogICAgICAgICAgZGF0YTogYmFzZTY0LAogICAgICAgIH0sCiAgICAgIH07CiAgICAgIHBlcmNlbnQudGV4dENvbnRlbnQgPQogICAgICAgICAgYCR7TWF0aC5yb3VuZCgocG9zaXRpb24gLyBmaWxlRGF0YS5ieXRlTGVuZ3RoKSAqIDEwMCl9JSBkb25lYDsKICAgIH0KICB9CgogIC8vIEFsbCBkb25lLgogIHlpZWxkIHsKICAgIHJlc3BvbnNlOiB7CiAgICAgIGFjdGlvbjogJ2NvbXBsZXRlJywKICAgIH0KICB9Owp9CgpzY29wZS5nb29nbGUgPSBzY29wZS5nb29nbGUgfHwge307CnNjb3BlLmdvb2dsZS5jb2xhYiA9IHNjb3BlLmdvb2dsZS5jb2xhYiB8fCB7fTsKc2NvcGUuZ29vZ2xlLmNvbGFiLl9maWxlcyA9IHsKICBfdXBsb2FkRmlsZXMsCiAgX3VwbG9hZEZpbGVzQ29udGludWUsCn07Cn0pKHNlbGYpOwo=",
"ok": true,
"headers": [
[
"content-type",
"application/javascript"
]
],
"status": 200,
"status_text": "OK"
}
},
"base_uri": "https://localhost:8080/",
"height": 70
},
"outputId": "7ce2b3da-057a-4be3-e18f-d905c4139a81"
},
"cell_type": "code",
"source": [
"from google.colab import files\n",
"uploaded = files.upload()"
],
"execution_count": 42,
"outputs": [
{
"output_type": "display_data",
"data": {
"text/html": [
"\n",
" <input type=\"file\" id=\"files-29d16818-2f5a-453e-8d2f-7964624479de\" name=\"files[]\" multiple disabled />\n",
" <output id=\"result-29d16818-2f5a-453e-8d2f-7964624479de\">\n",
" Upload widget is only available when the cell has been executed in the\n",
" current browser session. Please rerun this cell to enable.\n",
" </output>\n",
" <script src=\"/nbextensions/google.colab/files.js\"></script> "
],
"text/plain": [
"<IPython.core.display.HTML object>"
]
},
"metadata": {
"tags": []
}
},
{
"output_type": "stream",
"text": [
"Saving consolidatedata.csv to consolidatedata (2).csv\n"
],
"name": "stdout"
}
]
},
{
"metadata": {
"id": "gRFyF7ef1ugy",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 2047
},
"outputId": "c90ee904-1cdd-4784-a63a-8365b03a1199"
},
"cell_type": "code",
"source": [
"import pandas as pd\n",
"import io\n",
"\n",
"df = pd.read_csv(io.StringIO(uploaded['consolidatedata.csv'].decode('utf-8')))\n",
"df"
],
"execution_count": 43,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>SENS0802</th>\n",
" <th>SENS0802.1</th>\n",
" <th>SENS0802.2</th>\n",
" <th>SENS0802.3</th>\n",
" <th>SENS0802.4</th>\n",
" <th>SENS0802.5</th>\n",
" <th>SENS0802.6</th>\n",
" <th>SENS0802.7</th>\n",
" <th>SENS0802.8</th>\n",
" <th>SENS0802.9</th>\n",
" <th>...</th>\n",
" <th>Atmospheric Pressure QNH</th>\n",
" <th>Atmospheric Pressure QFE</th>\n",
" <th>Direct Radiation 1</th>\n",
" <th>Direct Radiation 2</th>\n",
" <th>Solar Elevation</th>\n",
" <th>Solar Azimuth</th>\n",
" <th>Direct Energy 1</th>\n",
" <th>Global Energy 1</th>\n",
" <th>Diffuse Energy 1</th>\n",
" <th>Direct Energy 1.1</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5874.66</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>10.98</td>\n",
" <td>51.76</td>\n",
" <td>284.13</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.899</td>\n",
" <td>982.1631</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>250.9484</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5874.91</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>11.70</td>\n",
" <td>53.06</td>\n",
" <td>284.86</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.687</td>\n",
" <td>981.9576</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0497</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5875.16</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>11.40</td>\n",
" <td>52.52</td>\n",
" <td>284.56</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.660</td>\n",
" <td>981.9315</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0472</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5875.41</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>11.80</td>\n",
" <td>53.24</td>\n",
" <td>284.97</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.687</td>\n",
" <td>981.9577</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0446</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5875.66</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>11.42</td>\n",
" <td>52.56</td>\n",
" <td>284.58</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.684</td>\n",
" <td>981.9548</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0430</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5875.91</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>10.57</td>\n",
" <td>51.02</td>\n",
" <td>283.73</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.487</td>\n",
" <td>981.7628</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0405</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5876.16</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>10.71</td>\n",
" <td>51.26</td>\n",
" <td>283.86</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.487</td>\n",
" <td>981.7634</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0380</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5876.41</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>11.21</td>\n",
" <td>52.20</td>\n",
" <td>284.36</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.292</td>\n",
" <td>981.5751</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0362</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5876.65</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>11.49</td>\n",
" <td>52.67</td>\n",
" <td>284.65</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.127</td>\n",
" <td>981.4141</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0337</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5876.90</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>11.47</td>\n",
" <td>52.63</td>\n",
" <td>284.61</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.885</td>\n",
" <td>981.1799</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0313</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5877.14</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>11.14</td>\n",
" <td>52.03</td>\n",
" <td>284.29</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.882</td>\n",
" <td>981.1769</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0294</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5877.39</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>10.73</td>\n",
" <td>51.31</td>\n",
" <td>283.88</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.882</td>\n",
" <td>981.1769</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0269</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5877.64</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>10.70</td>\n",
" <td>51.24</td>\n",
" <td>283.84</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.880</td>\n",
" <td>981.1748</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0245</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5877.89</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>10.51</td>\n",
" <td>50.90</td>\n",
" <td>283.66</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.678</td>\n",
" <td>980.9788</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0228</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5878.14</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>10.19</td>\n",
" <td>50.37</td>\n",
" <td>283.37</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.873</td>\n",
" <td>981.1688</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0202</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5878.39</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>9.97</td>\n",
" <td>49.91</td>\n",
" <td>283.10</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.872</td>\n",
" <td>981.1674</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0177</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5878.64</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>9.62</td>\n",
" <td>49.31</td>\n",
" <td>282.78</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.674</td>\n",
" <td>980.9753</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0161</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5878.89</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>9.28</td>\n",
" <td>48.69</td>\n",
" <td>282.43</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.484</td>\n",
" <td>980.7916</td>\n",
" <td>0.104713</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0135</td>\n",
" <td>0.000003</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000009</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5879.13</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>9.65</td>\n",
" <td>49.35</td>\n",
" <td>282.79</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.479</td>\n",
" <td>980.7860</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0109</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5879.38</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>10.36</td>\n",
" <td>50.63</td>\n",
" <td>283.51</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.476</td>\n",
" <td>980.7836</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0093</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5879.62</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>9.78</td>\n",
" <td>49.58</td>\n",
" <td>282.91</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.670</td>\n",
" <td>980.9714</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0067</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5879.87</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>9.42</td>\n",
" <td>48.97</td>\n",
" <td>282.60</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.670</td>\n",
" <td>980.9714</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0041</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5880.12</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>9.45</td>\n",
" <td>48.98</td>\n",
" <td>282.58</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.668</td>\n",
" <td>980.9697</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0025</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>23</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5880.37</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>9.08</td>\n",
" <td>48.35</td>\n",
" <td>282.22</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.669</td>\n",
" <td>980.9698</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>109.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>24</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5880.62</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>9.33</td>\n",
" <td>48.81</td>\n",
" <td>282.49</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1011.913</td>\n",
" <td>981.2068</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>108.9975</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>25</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5880.87</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>9.19</td>\n",
" <td>48.54</td>\n",
" <td>282.34</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.063</td>\n",
" <td>981.3525</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>110.0409</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>26</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5881.12</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>8.51</td>\n",
" <td>47.32</td>\n",
" <td>281.68</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1012.454</td>\n",
" <td>981.7318</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>111.7117</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>27</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5881.37</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>8.03</td>\n",
" <td>46.44</td>\n",
" <td>281.18</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.111</td>\n",
" <td>982.3685</td>\n",
" <td>0.214133</td>\n",
" <td>0.0</td>\n",
" <td>-0.429967</td>\n",
" <td>113.4416</td>\n",
" <td>0.000002</td>\n",
" <td>0.000000</td>\n",
" <td>5.510000e-13</td>\n",
" <td>0.000008</td>\n",
" </tr>\n",
" <tr>\n",
" <th>28</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5881.61</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>7.61</td>\n",
" <td>45.68</td>\n",
" <td>280.74</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.450</td>\n",
" <td>982.6966</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>2.395957</td>\n",
" <td>115.2402</td>\n",
" <td>0.000000</td>\n",
" <td>0.000527</td>\n",
" <td>5.314140e-04</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>29</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>5881.86</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>7.42</td>\n",
" <td>45.33</td>\n",
" <td>280.56</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.650</td>\n",
" <td>982.8913</td>\n",
" <td>1.517749</td>\n",
" <td>0.0</td>\n",
" <td>5.236639</td>\n",
" <td>117.1152</td>\n",
" <td>0.000007</td>\n",
" <td>0.002036</td>\n",
" <td>1.976950e-03</td>\n",
" <td>0.000027</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1497</th>\n",
" <td>0.0</td>\n",
" <td>399.30</td>\n",
" <td>6198.93</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>32.07</td>\n",
" <td>89.72</td>\n",
" <td>305.22</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.117</td>\n",
" <td>982.3746</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2237</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1498</th>\n",
" <td>0.0</td>\n",
" <td>280.94</td>\n",
" <td>6199.17</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>28.85</td>\n",
" <td>83.94</td>\n",
" <td>302.00</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.310</td>\n",
" <td>982.5612</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2276</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1499</th>\n",
" <td>0.0</td>\n",
" <td>228.00</td>\n",
" <td>6199.42</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>26.69</td>\n",
" <td>80.02</td>\n",
" <td>299.82</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.313</td>\n",
" <td>982.5638</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2303</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1500</th>\n",
" <td>0.0</td>\n",
" <td>186.83</td>\n",
" <td>6199.19</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>23.77</td>\n",
" <td>74.80</td>\n",
" <td>296.93</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.503</td>\n",
" <td>982.7485</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2342</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1501</th>\n",
" <td>0.0</td>\n",
" <td>161.47</td>\n",
" <td>6199.43</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>22.46</td>\n",
" <td>72.43</td>\n",
" <td>295.62</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.500</td>\n",
" <td>982.7462</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2375</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1502</th>\n",
" <td>0.0</td>\n",
" <td>114.97</td>\n",
" <td>6199.68</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>21.66</td>\n",
" <td>71.00</td>\n",
" <td>294.82</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.553</td>\n",
" <td>982.7969</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2402</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1503</th>\n",
" <td>0.0</td>\n",
" <td>78.03</td>\n",
" <td>6199.93</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>20.72</td>\n",
" <td>69.30</td>\n",
" <td>293.88</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.699</td>\n",
" <td>982.9387</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2441</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1504</th>\n",
" <td>0.0</td>\n",
" <td>48.00</td>\n",
" <td>6200.17</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>19.70</td>\n",
" <td>67.44</td>\n",
" <td>292.85</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.889</td>\n",
" <td>983.1227</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2478</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1505</th>\n",
" <td>0.0</td>\n",
" <td>22.47</td>\n",
" <td>6200.42</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>18.52</td>\n",
" <td>65.33</td>\n",
" <td>291.67</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.885</td>\n",
" <td>983.1194</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2502</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1506</th>\n",
" <td>0.0</td>\n",
" <td>4.26</td>\n",
" <td>6200.68</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>17.52</td>\n",
" <td>63.52</td>\n",
" <td>290.66</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.882</td>\n",
" <td>983.1163</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2540</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1507</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6200.91</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>17.18</td>\n",
" <td>62.91</td>\n",
" <td>290.32</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.683</td>\n",
" <td>982.9236</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2578</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1508</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6201.17</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>16.34</td>\n",
" <td>61.41</td>\n",
" <td>289.49</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.821</td>\n",
" <td>983.0567</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2605</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1509</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6201.04</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>16.03</td>\n",
" <td>60.83</td>\n",
" <td>289.17</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.684</td>\n",
" <td>982.9238</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2639</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1510</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6201.13</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>15.79</td>\n",
" <td>60.46</td>\n",
" <td>288.96</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.482</td>\n",
" <td>982.7282</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2676</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1511</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6201.38</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>15.38</td>\n",
" <td>59.69</td>\n",
" <td>288.53</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.482</td>\n",
" <td>982.7286</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2704</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1512</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6201.62</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>15.46</td>\n",
" <td>59.81</td>\n",
" <td>288.61</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>1013.481</td>\n",
" <td>982.7276</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>255.2744</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1513</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6201.87</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>15.52</td>\n",
" <td>59.95</td>\n",
" <td>288.68</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1514</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6202.12</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>15.34</td>\n",
" <td>59.61</td>\n",
" <td>288.50</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1515</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6202.37</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>15.21</td>\n",
" <td>59.40</td>\n",
" <td>288.39</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1516</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6202.62</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>15.04</td>\n",
" <td>59.02</td>\n",
" <td>288.19</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1517</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6202.87</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>14.83</td>\n",
" <td>58.69</td>\n",
" <td>287.97</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1518</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6203.12</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>14.50</td>\n",
" <td>58.11</td>\n",
" <td>287.65</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1519</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6203.36</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>14.47</td>\n",
" <td>58.07</td>\n",
" <td>287.63</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1520</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6203.61</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>14.22</td>\n",
" <td>57.62</td>\n",
" <td>287.40</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1521</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6203.85</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>13.71</td>\n",
" <td>56.66</td>\n",
" <td>286.86</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1522</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6204.10</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>13.70</td>\n",
" <td>56.66</td>\n",
" <td>286.85</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1523</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6204.35</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>13.56</td>\n",
" <td>56.37</td>\n",
" <td>286.70</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1524</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6204.60</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>13.51</td>\n",
" <td>56.32</td>\n",
" <td>286.66</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1525</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6204.85</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>13.47</td>\n",
" <td>56.24</td>\n",
" <td>286.63</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1526</th>\n",
" <td>0.0</td>\n",
" <td>0.00</td>\n",
" <td>6205.10</td>\n",
" <td>-273.1</td>\n",
" <td>-459.6</td>\n",
" <td>0.0</td>\n",
" <td>13.62</td>\n",
" <td>56.50</td>\n",
" <td>286.76</td>\n",
" <td>0</td>\n",
" <td>...</td>\n",
" <td>0.000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.0</td>\n",
" <td>0.000000</td>\n",
" <td>0.0000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>1527 rows × 331 columns</p>\n",
"</div>"
],
"text/plain": [
" SENS0802 SENS0802.1 SENS0802.2 SENS0802.3 SENS0802.4 SENS0802.5 \\\n",
"0 0.0 0.00 5874.66 -273.1 -459.6 0.0 \n",
"1 0.0 0.00 5874.91 -273.1 -459.6 0.0 \n",
"2 0.0 0.00 5875.16 -273.1 -459.6 0.0 \n",
"3 0.0 0.00 5875.41 -273.1 -459.6 0.0 \n",
"4 0.0 0.00 5875.66 -273.1 -459.6 0.0 \n",
"5 0.0 0.00 5875.91 -273.1 -459.6 0.0 \n",
"6 0.0 0.00 5876.16 -273.1 -459.6 0.0 \n",
"7 0.0 0.00 5876.41 -273.1 -459.6 0.0 \n",
"8 0.0 0.00 5876.65 -273.1 -459.6 0.0 \n",
"9 0.0 0.00 5876.90 -273.1 -459.6 0.0 \n",
"10 0.0 0.00 5877.14 -273.1 -459.6 0.0 \n",
"11 0.0 0.00 5877.39 -273.1 -459.6 0.0 \n",
"12 0.0 0.00 5877.64 -273.1 -459.6 0.0 \n",
"13 0.0 0.00 5877.89 -273.1 -459.6 0.0 \n",
"14 0.0 0.00 5878.14 -273.1 -459.6 0.0 \n",
"15 0.0 0.00 5878.39 -273.1 -459.6 0.0 \n",
"16 0.0 0.00 5878.64 -273.1 -459.6 0.0 \n",
"17 0.0 0.00 5878.89 -273.1 -459.6 0.0 \n",
"18 0.0 0.00 5879.13 -273.1 -459.6 0.0 \n",
"19 0.0 0.00 5879.38 -273.1 -459.6 0.0 \n",
"20 0.0 0.00 5879.62 -273.1 -459.6 0.0 \n",
"21 0.0 0.00 5879.87 -273.1 -459.6 0.0 \n",
"22 0.0 0.00 5880.12 -273.1 -459.6 0.0 \n",
"23 0.0 0.00 5880.37 -273.1 -459.6 0.0 \n",
"24 0.0 0.00 5880.62 -273.1 -459.6 0.0 \n",
"25 0.0 0.00 5880.87 -273.1 -459.6 0.0 \n",
"26 0.0 0.00 5881.12 -273.1 -459.6 0.0 \n",
"27 0.0 0.00 5881.37 -273.1 -459.6 0.0 \n",
"28 0.0 0.00 5881.61 -273.1 -459.6 0.0 \n",
"29 0.0 0.00 5881.86 -273.1 -459.6 0.0 \n",
"... ... ... ... ... ... ... \n",
"1497 0.0 399.30 6198.93 -273.1 -459.6 0.0 \n",
"1498 0.0 280.94 6199.17 -273.1 -459.6 0.0 \n",
"1499 0.0 228.00 6199.42 -273.1 -459.6 0.0 \n",
"1500 0.0 186.83 6199.19 -273.1 -459.6 0.0 \n",
"1501 0.0 161.47 6199.43 -273.1 -459.6 0.0 \n",
"1502 0.0 114.97 6199.68 -273.1 -459.6 0.0 \n",
"1503 0.0 78.03 6199.93 -273.1 -459.6 0.0 \n",
"1504 0.0 48.00 6200.17 -273.1 -459.6 0.0 \n",
"1505 0.0 22.47 6200.42 -273.1 -459.6 0.0 \n",
"1506 0.0 4.26 6200.68 -273.1 -459.6 0.0 \n",
"1507 0.0 0.00 6200.91 -273.1 -459.6 0.0 \n",
"1508 0.0 0.00 6201.17 -273.1 -459.6 0.0 \n",
"1509 0.0 0.00 6201.04 -273.1 -459.6 0.0 \n",
"1510 0.0 0.00 6201.13 -273.1 -459.6 0.0 \n",
"1511 0.0 0.00 6201.38 -273.1 -459.6 0.0 \n",
"1512 0.0 0.00 6201.62 -273.1 -459.6 0.0 \n",
"1513 0.0 0.00 6201.87 -273.1 -459.6 0.0 \n",
"1514 0.0 0.00 6202.12 -273.1 -459.6 0.0 \n",
"1515 0.0 0.00 6202.37 -273.1 -459.6 0.0 \n",
"1516 0.0 0.00 6202.62 -273.1 -459.6 0.0 \n",
"1517 0.0 0.00 6202.87 -273.1 -459.6 0.0 \n",
"1518 0.0 0.00 6203.12 -273.1 -459.6 0.0 \n",
"1519 0.0 0.00 6203.36 -273.1 -459.6 0.0 \n",
"1520 0.0 0.00 6203.61 -273.1 -459.6 0.0 \n",
"1521 0.0 0.00 6203.85 -273.1 -459.6 0.0 \n",
"1522 0.0 0.00 6204.10 -273.1 -459.6 0.0 \n",
"1523 0.0 0.00 6204.35 -273.1 -459.6 0.0 \n",
"1524 0.0 0.00 6204.60 -273.1 -459.6 0.0 \n",
"1525 0.0 0.00 6204.85 -273.1 -459.6 0.0 \n",
"1526 0.0 0.00 6205.10 -273.1 -459.6 0.0 \n",
"\n",
" SENS0802.6 SENS0802.7 SENS0802.8 SENS0802.9 ... \\\n",
"0 10.98 51.76 284.13 0 ... \n",
"1 11.70 53.06 284.86 0 ... \n",
"2 11.40 52.52 284.56 0 ... \n",
"3 11.80 53.24 284.97 0 ... \n",
"4 11.42 52.56 284.58 0 ... \n",
"5 10.57 51.02 283.73 0 ... \n",
"6 10.71 51.26 283.86 0 ... \n",
"7 11.21 52.20 284.36 0 ... \n",
"8 11.49 52.67 284.65 0 ... \n",
"9 11.47 52.63 284.61 0 ... \n",
"10 11.14 52.03 284.29 0 ... \n",
"11 10.73 51.31 283.88 0 ... \n",
"12 10.70 51.24 283.84 0 ... \n",
"13 10.51 50.90 283.66 0 ... \n",
"14 10.19 50.37 283.37 0 ... \n",
"15 9.97 49.91 283.10 0 ... \n",
"16 9.62 49.31 282.78 0 ... \n",
"17 9.28 48.69 282.43 0 ... \n",
"18 9.65 49.35 282.79 0 ... \n",
"19 10.36 50.63 283.51 0 ... \n",
"20 9.78 49.58 282.91 0 ... \n",
"21 9.42 48.97 282.60 0 ... \n",
"22 9.45 48.98 282.58 0 ... \n",
"23 9.08 48.35 282.22 0 ... \n",
"24 9.33 48.81 282.49 0 ... \n",
"25 9.19 48.54 282.34 0 ... \n",
"26 8.51 47.32 281.68 0 ... \n",
"27 8.03 46.44 281.18 0 ... \n",
"28 7.61 45.68 280.74 0 ... \n",
"29 7.42 45.33 280.56 0 ... \n",
"... ... ... ... ... ... \n",
"1497 32.07 89.72 305.22 0 ... \n",
"1498 28.85 83.94 302.00 0 ... \n",
"1499 26.69 80.02 299.82 0 ... \n",
"1500 23.77 74.80 296.93 0 ... \n",
"1501 22.46 72.43 295.62 0 ... \n",
"1502 21.66 71.00 294.82 0 ... \n",
"1503 20.72 69.30 293.88 0 ... \n",
"1504 19.70 67.44 292.85 0 ... \n",
"1505 18.52 65.33 291.67 0 ... \n",
"1506 17.52 63.52 290.66 0 ... \n",
"1507 17.18 62.91 290.32 0 ... \n",
"1508 16.34 61.41 289.49 0 ... \n",
"1509 16.03 60.83 289.17 0 ... \n",
"1510 15.79 60.46 288.96 0 ... \n",
"1511 15.38 59.69 288.53 0 ... \n",
"1512 15.46 59.81 288.61 0 ... \n",
"1513 15.52 59.95 288.68 0 ... \n",
"1514 15.34 59.61 288.50 0 ... \n",
"1515 15.21 59.40 288.39 0 ... \n",
"1516 15.04 59.02 288.19 0 ... \n",
"1517 14.83 58.69 287.97 0 ... \n",
"1518 14.50 58.11 287.65 0 ... \n",
"1519 14.47 58.07 287.63 0 ... \n",
"1520 14.22 57.62 287.40 0 ... \n",
"1521 13.71 56.66 286.86 0 ... \n",
"1522 13.70 56.66 286.85 0 ... \n",
"1523 13.56 56.37 286.70 0 ... \n",
"1524 13.51 56.32 286.66 0 ... \n",
"1525 13.47 56.24 286.63 0 ... \n",
"1526 13.62 56.50 286.76 0 ... \n",
"\n",
" Atmospheric Pressure QNH Atmospheric Pressure QFE Direct Radiation 1 \\\n",
"0 1012.899 982.1631 0.000000 \n",
"1 1012.687 981.9576 0.000000 \n",
"2 1012.660 981.9315 0.000000 \n",
"3 1012.687 981.9577 0.000000 \n",
"4 1012.684 981.9548 0.000000 \n",
"5 1012.487 981.7628 0.000000 \n",
"6 1012.487 981.7634 0.000000 \n",
"7 1012.292 981.5751 0.000000 \n",
"8 1012.127 981.4141 0.000000 \n",
"9 1011.885 981.1799 0.000000 \n",
"10 1011.882 981.1769 0.000000 \n",
"11 1011.882 981.1769 0.000000 \n",
"12 1011.880 981.1748 0.000000 \n",
"13 1011.678 980.9788 0.000000 \n",
"14 1011.873 981.1688 0.000000 \n",
"15 1011.872 981.1674 0.000000 \n",
"16 1011.674 980.9753 0.000000 \n",
"17 1011.484 980.7916 0.104713 \n",
"18 1011.479 980.7860 0.000000 \n",
"19 1011.476 980.7836 0.000000 \n",
"20 1011.670 980.9714 0.000000 \n",
"21 1011.670 980.9714 0.000000 \n",
"22 1011.668 980.9697 0.000000 \n",
"23 1011.669 980.9698 0.000000 \n",
"24 1011.913 981.2068 0.000000 \n",
"25 1012.063 981.3525 0.000000 \n",
"26 1012.454 981.7318 0.000000 \n",
"27 1013.111 982.3685 0.214133 \n",
"28 1013.450 982.6966 0.000000 \n",
"29 1013.650 982.8913 1.517749 \n",
"... ... ... ... \n",
"1497 1013.117 982.3746 0.000000 \n",
"1498 1013.310 982.5612 0.000000 \n",
"1499 1013.313 982.5638 0.000000 \n",
"1500 1013.503 982.7485 0.000000 \n",
"1501 1013.500 982.7462 0.000000 \n",
"1502 1013.553 982.7969 0.000000 \n",
"1503 1013.699 982.9387 0.000000 \n",
"1504 1013.889 983.1227 0.000000 \n",
"1505 1013.885 983.1194 0.000000 \n",
"1506 1013.882 983.1163 0.000000 \n",
"1507 1013.683 982.9236 0.000000 \n",
"1508 1013.821 983.0567 0.000000 \n",
"1509 1013.684 982.9238 0.000000 \n",
"1510 1013.482 982.7282 0.000000 \n",
"1511 1013.482 982.7286 0.000000 \n",
"1512 1013.481 982.7276 0.000000 \n",
"1513 0.000 0.0000 0.000000 \n",
"1514 0.000 0.0000 0.000000 \n",
"1515 0.000 0.0000 0.000000 \n",
"1516 0.000 0.0000 0.000000 \n",
"1517 0.000 0.0000 0.000000 \n",
"1518 0.000 0.0000 0.000000 \n",
"1519 0.000 0.0000 0.000000 \n",
"1520 0.000 0.0000 0.000000 \n",
"1521 0.000 0.0000 0.000000 \n",
"1522 0.000 0.0000 0.000000 \n",
"1523 0.000 0.0000 0.000000 \n",
"1524 0.000 0.0000 0.000000 \n",
"1525 0.000 0.0000 0.000000 \n",
"1526 0.000 0.0000 0.000000 \n",
"\n",
" Direct Radiation 2 Solar Elevation Solar Azimuth Direct Energy 1 \\\n",
"0 0.0 0.000000 250.9484 0.000000 \n",
"1 0.0 0.000000 109.0497 0.000000 \n",
"2 0.0 0.000000 109.0472 0.000000 \n",
"3 0.0 0.000000 109.0446 0.000000 \n",
"4 0.0 0.000000 109.0430 0.000000 \n",
"5 0.0 0.000000 109.0405 0.000000 \n",
"6 0.0 0.000000 109.0380 0.000000 \n",
"7 0.0 0.000000 109.0362 0.000000 \n",
"8 0.0 0.000000 109.0337 0.000000 \n",
"9 0.0 0.000000 109.0313 0.000000 \n",
"10 0.0 0.000000 109.0294 0.000000 \n",
"11 0.0 0.000000 109.0269 0.000000 \n",
"12 0.0 0.000000 109.0245 0.000000 \n",
"13 0.0 0.000000 109.0228 0.000000 \n",
"14 0.0 0.000000 109.0202 0.000000 \n",
"15 0.0 0.000000 109.0177 0.000000 \n",
"16 0.0 0.000000 109.0161 0.000000 \n",
"17 0.0 0.000000 109.0135 0.000003 \n",
"18 0.0 0.000000 109.0109 0.000000 \n",
"19 0.0 0.000000 109.0093 0.000000 \n",
"20 0.0 0.000000 109.0067 0.000000 \n",
"21 0.0 0.000000 109.0041 0.000000 \n",
"22 0.0 0.000000 109.0025 0.000000 \n",
"23 0.0 0.000000 109.0000 0.000000 \n",
"24 0.0 0.000000 108.9975 0.000000 \n",
"25 0.0 0.000000 110.0409 0.000000 \n",
"26 0.0 0.000000 111.7117 0.000000 \n",
"27 0.0 -0.429967 113.4416 0.000002 \n",
"28 0.0 2.395957 115.2402 0.000000 \n",
"29 0.0 5.236639 117.1152 0.000007 \n",
"... ... ... ... ... \n",
"1497 0.0 0.000000 255.2237 0.000000 \n",
"1498 0.0 0.000000 255.2276 0.000000 \n",
"1499 0.0 0.000000 255.2303 0.000000 \n",
"1500 0.0 0.000000 255.2342 0.000000 \n",
"1501 0.0 0.000000 255.2375 0.000000 \n",
"1502 0.0 0.000000 255.2402 0.000000 \n",
"1503 0.0 0.000000 255.2441 0.000000 \n",
"1504 0.0 0.000000 255.2478 0.000000 \n",
"1505 0.0 0.000000 255.2502 0.000000 \n",
"1506 0.0 0.000000 255.2540 0.000000 \n",
"1507 0.0 0.000000 255.2578 0.000000 \n",
"1508 0.0 0.000000 255.2605 0.000000 \n",
"1509 0.0 0.000000 255.2639 0.000000 \n",
"1510 0.0 0.000000 255.2676 0.000000 \n",
"1511 0.0 0.000000 255.2704 0.000000 \n",
"1512 0.0 0.000000 255.2744 0.000000 \n",
"1513 0.0 0.000000 0.0000 0.000000 \n",
"1514 0.0 0.000000 0.0000 0.000000 \n",
"1515 0.0 0.000000 0.0000 0.000000 \n",
"1516 0.0 0.000000 0.0000 0.000000 \n",
"1517 0.0 0.000000 0.0000 0.000000 \n",
"1518 0.0 0.000000 0.0000 0.000000 \n",
"1519 0.0 0.000000 0.0000 0.000000 \n",
"1520 0.0 0.000000 0.0000 0.000000 \n",
"1521 0.0 0.000000 0.0000 0.000000 \n",
"1522 0.0 0.000000 0.0000 0.000000 \n",
"1523 0.0 0.000000 0.0000 0.000000 \n",
"1524 0.0 0.000000 0.0000 0.000000 \n",
"1525 0.0 0.000000 0.0000 0.000000 \n",
"1526 0.0 0.000000 0.0000 0.000000 \n",
"\n",
" Global Energy 1 Diffuse Energy 1 Direct Energy 1.1 \n",
"0 0.000000 0.000000e+00 0.000000 \n",
"1 0.000000 0.000000e+00 0.000000 \n",
"2 0.000000 0.000000e+00 0.000000 \n",
"3 0.000000 0.000000e+00 0.000000 \n",
"4 0.000000 0.000000e+00 0.000000 \n",
"5 0.000000 0.000000e+00 0.000000 \n",
"6 0.000000 0.000000e+00 0.000000 \n",
"7 0.000000 0.000000e+00 0.000000 \n",
"8 0.000000 0.000000e+00 0.000000 \n",
"9 0.000000 0.000000e+00 0.000000 \n",
"10 0.000000 0.000000e+00 0.000000 \n",
"11 0.000000 0.000000e+00 0.000000 \n",
"12 0.000000 0.000000e+00 0.000000 \n",
"13 0.000000 0.000000e+00 0.000000 \n",
"14 0.000000 0.000000e+00 0.000000 \n",
"15 0.000000 0.000000e+00 0.000000 \n",
"16 0.000000 0.000000e+00 0.000000 \n",
"17 0.000000 0.000000e+00 0.000009 \n",
"18 0.000000 0.000000e+00 0.000000 \n",
"19 0.000000 0.000000e+00 0.000000 \n",
"20 0.000000 0.000000e+00 0.000000 \n",
"21 0.000000 0.000000e+00 0.000000 \n",
"22 0.000000 0.000000e+00 0.000000 \n",
"23 0.000000 0.000000e+00 0.000000 \n",
"24 0.000000 0.000000e+00 0.000000 \n",
"25 0.000000 0.000000e+00 0.000000 \n",
"26 0.000000 0.000000e+00 0.000000 \n",
"27 0.000000 5.510000e-13 0.000008 \n",
"28 0.000527 5.314140e-04 0.000000 \n",
"29 0.002036 1.976950e-03 0.000027 \n",
"... ... ... ... \n",
"1497 0.000000 0.000000e+00 0.000000 \n",
"1498 0.000000 0.000000e+00 0.000000 \n",
"1499 0.000000 0.000000e+00 0.000000 \n",
"1500 0.000000 0.000000e+00 0.000000 \n",
"1501 0.000000 0.000000e+00 0.000000 \n",
"1502 0.000000 0.000000e+00 0.000000 \n",
"1503 0.000000 0.000000e+00 0.000000 \n",
"1504 0.000000 0.000000e+00 0.000000 \n",
"1505 0.000000 0.000000e+00 0.000000 \n",
"1506 0.000000 0.000000e+00 0.000000 \n",
"1507 0.000000 0.000000e+00 0.000000 \n",
"1508 0.000000 0.000000e+00 0.000000 \n",
"1509 0.000000 0.000000e+00 0.000000 \n",
"1510 0.000000 0.000000e+00 0.000000 \n",
"1511 0.000000 0.000000e+00 0.000000 \n",
"1512 0.000000 0.000000e+00 0.000000 \n",
"1513 0.000000 0.000000e+00 0.000000 \n",
"1514 0.000000 0.000000e+00 0.000000 \n",
"1515 0.000000 0.000000e+00 0.000000 \n",
"1516 0.000000 0.000000e+00 0.000000 \n",
"1517 0.000000 0.000000e+00 0.000000 \n",
"1518 0.000000 0.000000e+00 0.000000 \n",
"1519 0.000000 0.000000e+00 0.000000 \n",
"1520 0.000000 0.000000e+00 0.000000 \n",
"1521 0.000000 0.000000e+00 0.000000 \n",
"1522 0.000000 0.000000e+00 0.000000 \n",
"1523 0.000000 0.000000e+00 0.000000 \n",
"1524 0.000000 0.000000e+00 0.000000 \n",
"1525 0.000000 0.000000e+00 0.000000 \n",
"1526 0.000000 0.000000e+00 0.000000 \n",
"\n",
"[1527 rows x 331 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 43
}
]
},
{
"metadata": {
"id": "a-yCd7AQWuO7",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"### **Imported a dataset having 300+ columns which contains all type of variable except time **\n",
"\n",
"For timeseries data , to preserve the time column we must drop the time column before feeding to the PCA as Timestamp or time shouldn't be used in a PCA generally ."
]
},
{
"metadata": {
"id": "JK8PyDeVWtLS",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "2345cc2d-a706-4c70-ceaf-19d942f3993d"
},
"cell_type": "code",
"source": [
"#Size of the dataframe :\n",
"\n",
"df.shape"
],
"execution_count": 45,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(1527, 331)"
]
},
"metadata": {
"tags": []
},
"execution_count": 45
}
]
},
{
"metadata": {
"id": "3iHRm6KwXd8m",
"colab_type": "text"
},
"cell_type": "markdown",
"source": [
"# Calling the pca function with k < length of columns "
]
},
{
"metadata": {
"id": "8Eazczbx0-KT",
"colab_type": "code",
"colab": {}
},
"cell_type": "code",
"source": [
"new_df = PCA(df , k =200)"
],
"execution_count": 0,
"outputs": []
},
{
"metadata": {
"id": "XQdvjX9lXViT",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "5586b2f8-a339-49d1-93e0-5535b33deca0"
},
"cell_type": "code",
"source": [
"#Size of dataframe after PCA :\n",
"\n",
"new_df.shape"
],
"execution_count": 48,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"(1527, 200)"
]
},
"metadata": {
"tags": []
},
"execution_count": 48
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment