{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Brewery Dataset Quick Start\n", "\n", "Version 1.0 \n", "\n", "The Brewery Dataset is an Academic Hub dataset hosted by the OSIsoft Cloud Service (OCS, https://www.osisoft.com/solutions/cloud/vision/), a cloud-native real-time data infrastructure used to perform enterprise-wide analytics using tools and languages of the user's choice. \n", "\n", "
\n", "For documentation about the Brewery dataset itself, please go to https://data.academic.osisoft.com/nbviewer/github/academic-hub/datasets/blob/master/Brewery_Dataset_Doc.ipynb\n", "
\n", "\n", "\n", "**Raw operational data has specific characteristics making it difficult to deal with directly**, among them:\n", "\n", "* variable data collection frequencies\n", "* bad values (system error codes)\n", "* data gaps \n", "\n", "\n", "**But data science projects using operational data needs to be:**\n", "\n", "* **Time-aligned** to deal with the characteritics above in consistent way according to the data type (e.g. interpolation for float values, repeat last good value for categorical data, etc)\n", "* **Context aware** so that the data can be understandable, across as many real-world assets that you need it for\n", "* **Shaped and filtered** to ensure you have the data you need, in the form you need it\n", "\n", "**The OCS solutions for application-ready data are Data Views:**\n", "\n", "![](https://academichub.blob.core.windows.net/images/piworld-dse-dataview-p2.png)\n", "\n", "**Each Academic Hub datasets comes endowed with a set of asset-centric data views.** \n", "\n", "The goal of Academic Hub Python library is to provide a very generic and consistent way to access:\n", "\n", "* the list of existing datasets\n", "* for a given dataset:\n", " * the list of its assets\n", " * the OCS namespace where the dataset is hosted\n", "* for a given asset, the list of data views it belongs to\n", "\n", "
\n", "The rest of this notebook is a working example of the functionality listed above for the Brewery dataset\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Install Academic Hub Python library " ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Requirement already satisfied: ocs-academic-hub==0.92.0 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (0.92.0)\n", "Requirement already satisfied: numpy in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from ocs-academic-hub==0.92.0) (1.19.4)\n", "Requirement already satisfied: python-dateutil>=2.8.0 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from ocs-academic-hub==0.92.0) (2.8.1)\n", "Requirement already satisfied: pandas>=0.24.2 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from ocs-academic-hub==0.92.0) (1.1.4)\n", "Requirement already satisfied: gql in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from ocs-academic-hub==0.92.0) (2.0.0)\n", "Requirement already satisfied: backoff in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from ocs-academic-hub==0.92.0) (1.10.0)\n", "Requirement already satisfied: ocs-sample-library-preview>=0.1.12rc0 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from ocs-academic-hub==0.92.0) (0.1.14rc0)\n", "Requirement already satisfied: typeguard>=2.4.1 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from ocs-academic-hub==0.92.0) (2.10.0)\n", "Requirement already satisfied: six>=1.5 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from python-dateutil>=2.8.0->ocs-academic-hub==0.92.0) (1.15.0)\n", "Requirement already satisfied: pytz>=2017.2 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from pandas>=0.24.2->ocs-academic-hub==0.92.0) (2020.4)\n", "Requirement already satisfied: promise<3,>=2.3 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from gql->ocs-academic-hub==0.92.0) (2.3)\n", "Requirement already satisfied: graphql-core<3,>=2.3.2 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from gql->ocs-academic-hub==0.92.0) (2.3.2)\n", "Requirement already satisfied: requests<3,>=2.12 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from gql->ocs-academic-hub==0.92.0) (2.25.1)\n", "Requirement already satisfied: rx<2,>=1.6 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from graphql-core<3,>=2.3.2->gql->ocs-academic-hub==0.92.0) (1.6.1)\n", "Requirement already satisfied: chardet<5,>=3.0.2 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from requests<3,>=2.12->gql->ocs-academic-hub==0.92.0) (3.0.4)\n", "Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from requests<3,>=2.12->gql->ocs-academic-hub==0.92.0) (1.25.11)\n", "Requirement already satisfied: idna<3,>=2.5 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from requests<3,>=2.12->gql->ocs-academic-hub==0.92.0) (2.10)\n", "Requirement already satisfied: certifi>=2017.4.17 in c:\\users\\cfoisy\\anaconda3\\envs\\datapump\\lib\\site-packages (from requests<3,>=2.12->gql->ocs-academic-hub==0.92.0) (2020.11.8)\n" ] } ], "source": [ "!pip install ocs-academic-hub==0.97.0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Use the `pip uninstall` only in case of library issues" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "tags": [] }, "outputs": [], "source": [ "# It's sometimes necessary to uninstall previous versions, uncomment and run the following line. Then restart kernel and reinstall with previous cell\n", "# !pip uninstall -y ocs-academic-hub ocs-sample-library-preview" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Import HubClient, necessary to connect and interact with OCS" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from ocs_academic_hub import HubClient" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Running the following cell initiate the login sequence\n", "\n", "**Warning:** a new brower tab will open offering the choice of identifying with Microsoft or Google. You should always pick Google:\n", "\"Login\n", "\n", "Return to this web page when done" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Step 1: Get OAuth endpoint configuration...\n", "Step 2: Set up server to process authorization response...\n", "Step 3: Authorize the user...\n", "Step 4: Set server to handle one request...\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "127.0.0.1 - - [22/Jan/2021 14:52:52] \"GET /callback.html?code=4VB0heYVkVMsDXdfAlQff5M0jrdeC4Xxn1vnhfVjD30&scope=openid%20ocsapi&session_state=grLsSqYuCmuh5AzkG08e9m8Auridd_5uknvW7FbwH-s.pCufC3Vn9GhDlUh3Qpi_0A HTTP/1.1\" 200 -\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Step 5: Get a token using the authorization code...\n", "Step 6: Access token read ok\n", "Complete!\n", "@ Hub data file: hub_datasets.json\n" ] } ], "source": [ "hub = HubClient()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Refresh datasets information\n", "\n", "Over time existing datasets are updated and new ones are added. The cell below makes sure you have the latest version of the production datasets. \n", "\n", "Note: after execution of this method, a file named `hub_datasets.json` will be created in the same directory as this notebook. The data in this file supersedes the one built-in with the `ocs_academic_hub` module. To get back to the built-in datasets information, move/rename/delete `hub_datasets.json`. " ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "@ Hub data file: hub_datasets.json\n", "@ Current dataset: Brewery\n" ] } ], "source": [ "hub.refresh_datasets()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get list of published hub datasets\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['Brewery', 'Campus_Energy', 'Pilot_Plant']" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hub.datasets()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Display current active dataset\n", "\n", "The default dataset is Brewery. Only one dataset can be active. " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'Brewery'" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hub.current_dataset()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get list of assets with Data Views\n", "\n", "Returned into the form of a pandas dataframe, with column `Asset_Id` and `Description`. Each asset has a unique `Asset_Id` as its identity. The Brewery dataset has a mix of bright tanks (prefixed `BB`), fermenter vessels (prefixed `FV`) and miscellaneous pieces of equipment. \n", "\n", "The cell below with `print` and `.to_string()` allows to see the whole dataframe content. " ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " Asset_Id Description\n", "0 Acid Tank AT1\n", "1 BA1 \n", "2 BA2 \n", "3 BB02 Bright Tank\n", "4 BB02 Line \n", "5 BB03 Bright Tank\n", "6 BB04 Bright Tank\n", "7 BB05 Bright Tank\n", "8 BB06 Bright Tank\n", "9 BB07 Bright Tank\n", "10 BB08 Bright Tank\n", "11 BB09 Bright Tank\n", "12 BB11 Bright Tank\n", "13 BB12 Bright Tank\n", "14 BB13 Bright Tank\n", "15 BB14 Bright Tank\n", "16 BB15 Bright Tank\n", "17 Beer Transfer Beer TransferTemplate\n", "18 C1_BBL1 Bright Tank\n", "19 C1_BL1 Cellar 1 Beer Line\n", "20 C1_PS1 PS1\n", "21 C1_PS2 PS2\n", "22 C1_YL1 Cellar 1 Yeast Line\n", "23 C2_BBL1 Bright Tank\n", "24 C2_FT1 Cellar 2 Foam Tank\n", "25 C2_PS1 C2_PS1\n", "26 C2_PS2 C2_PS2\n", "27 C3_BL1 Cellar 3 Beer Line\n", "28 C3_FT1 Cellar 3 Foam Trap\n", "29 C3_YL1 Cellar 3 Yeast Line\n", "30 CNT1 Centrifuge\n", "31 CNT2 Centrifuge\n", "32 CST1 \n", "33 Caustic Tank CT1\n", "34 Clean In Place CIP1\n", "35 FV01 Fermenter Vessel\n", "36 FV02 Fermenter Vessel\n", "37 FV08 Fermenter Vessel\n", "38 FV09 Fermenter Vessel\n", "39 FV1/FV2 Line Supply Line\n", "40 FV10 Fermenter Vessel\n", "41 FV11 Fermenter Vessel\n", "42 FV12 Fermenter Vessel\n", "43 FV13 Fermenter Vessel\n", "44 FV14 Fermenter Vessel\n", "45 FV15 Fermenter Vessel\n", "46 FV16 Fermenter Vessel\n", "47 FV17 Fermenter Vessel\n", "48 FV18 Fermenter Vessel\n", "49 FV19 Fermenter Vessel\n", "50 FV20 Fermenter Vessel\n", "51 FV21 Fermenter Vessel\n", "52 FV22 Fermenter Vessel\n", "53 FV23 Fermenter Vessel\n", "54 FV24 Fermenter Vessel\n", "55 FV25 Fermenter Vessel\n", "56 FV26 Fermenter Vessel\n", "57 FV27 Fermenter Vessel\n", "58 FV28 Fermenter Vessel\n", "59 FV31 Fermenter Vessel\n", "60 FV32 Fermenter Vessel\n", "61 FV33 Fermenter Vessel\n", "62 FV34 Fermenter Vessel\n", "63 FV35 Fermenter Vessel\n", "64 FV36 Fermenter Vessel\n", "65 FV37 Fermenter Vessel\n", "66 FV38 Fermenter Vessel\n", "67 FV39 Fermenter Vessel\n", "68 FV40 Fermenter Vessel\n", "69 FV41 Fermenter Vessel\n", "70 FV42 Fermenter Vessel\n", "71 FV43 Fermenter Vessel\n", "72 FV44 Fermenter Vessel\n", "73 FV45 Fermenter Vessel\n", "74 FV46 Fermenter Vessel\n", "75 Loop 1 \n", "76 Loop 2 \n", "77 PZ1 \n" ] } ], "source": [ "print(hub.assets().to_string())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## List of all Data Views\n", "\n", "Those are all single-asset default (with all data available for the asset) Data Views" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['brewery-acid.tank',\n", " 'brewery-ba1',\n", " 'brewery-ba2',\n", " 'brewery-bb02',\n", " 'brewery-bb02.line',\n", " 'brewery-bb03',\n", " 'brewery-bb04',\n", " 'brewery-bb05',\n", " 'brewery-bb06',\n", " 'brewery-bb07',\n", " 'brewery-bb08',\n", " 'brewery-bb09',\n", " 'brewery-bb11',\n", " 'brewery-bb12',\n", " 'brewery-bb13',\n", " 'brewery-bb14',\n", " 'brewery-bb15',\n", " 'brewery-beer.transfer',\n", " 'brewery-c1_bbl1',\n", " 'brewery-c1_bl1',\n", " 'brewery-c1_ps1',\n", " 'brewery-c1_ps2',\n", " 'brewery-c1_yl1',\n", " 'brewery-c2_bbl1',\n", " 'brewery-c2_ft1',\n", " 'brewery-c2_ps1',\n", " 'brewery-c2_ps2',\n", " 'brewery-c3_bl1',\n", " 'brewery-c3_ft1',\n", " 'brewery-c3_yl1',\n", " 'brewery-caustic.tank',\n", " 'brewery-clean.in.place',\n", " 'brewery-cnt1',\n", " 'brewery-cnt2',\n", " 'brewery-cst1',\n", " 'brewery-fv01',\n", " 'brewery-fv02',\n", " 'brewery-fv08',\n", " 'brewery-fv09',\n", " 'brewery-fv10',\n", " 'brewery-fv11',\n", " 'brewery-fv12',\n", " 'brewery-fv13',\n", " 'brewery-fv14',\n", " 'brewery-fv15',\n", " 'brewery-fv16',\n", " 'brewery-fv17',\n", " 'brewery-fv18',\n", " 'brewery-fv19',\n", " 'brewery-fv1__fv2.line',\n", " 'brewery-fv20',\n", " 'brewery-fv21',\n", " 'brewery-fv22',\n", " 'brewery-fv23',\n", " 'brewery-fv24',\n", " 'brewery-fv25',\n", " 'brewery-fv26',\n", " 'brewery-fv27',\n", " 'brewery-fv28',\n", " 'brewery-fv31',\n", " 'brewery-fv32',\n", " 'brewery-fv33',\n", " 'brewery-fv34',\n", " 'brewery-fv35',\n", " 'brewery-fv36',\n", " 'brewery-fv37',\n", " 'brewery-fv38',\n", " 'brewery-fv39',\n", " 'brewery-fv40',\n", " 'brewery-fv41',\n", " 'brewery-fv42',\n", " 'brewery-fv43',\n", " 'brewery-fv44',\n", " 'brewery-fv45',\n", " 'brewery-fv46',\n", " 'brewery-loop.1',\n", " 'brewery-loop.2',\n", " 'brewery-pz1']" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hub.asset_dataviews()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## List of Data Views exclusive to Fermenter Vessel #32 (FV32)\n", "\n", "Empty filter (`filter=\"\"`) allows to see all dataviews for the asset instead of simply the default one" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['brewery-fv32',\n", " 'brewery-fv32-adf_prediction',\n", " 'brewery-fv32-cooling_prediction',\n", " 'brewery-fv32-pca']" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dvs_fv32 = hub.asset_dataviews(asset=\"FV32\", filter=\"\")\n", "dvs_fv32" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## List Multi-Asset Data Views Containing FV32\n", "\n", "The column `Asset_Id` in data view results indicates which asset the row of data belongs to " ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['brewery-fv31--36',\n", " 'brewery-fv31--36-adf_prediction',\n", " 'brewery-fv31--36-cooling_prediction',\n", " 'brewery-fv31--36-pca']" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "hub.asset_dataviews(asset=\"FV32\", multiple_asset=True, filter=\"\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get the OCS namespace associated to the dataset\n", "\n", "Each data set belongs to a namespace within the Academic Hub OCS account. Since dataset may move over time, the function below always return the active namespace for the given dataset. " ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'academic_hub_01'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dataset = hub.current_dataset()\n", "namespace_id = hub.namespace_of(dataset)\n", "namespace_id" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get Data View structure\n", "\n", "With Stream Name, the column name under which stream data appears, its value type and engineering units if available. We display below the structure of the default data view. " ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "brewery-fv32\n", "Asset_Id Column_Name Stream_Type Stream_UOM OCS_Stream_Name\n", " FV32 ADF Float B2_CL_C2_FV32/ADF\n", " FV32 Bottom TIC OUT Float % B2_CL_C2_FV32_TIC1380A/OUT.CV\n", " FV32 Bottom TIC PV Float °F B2_CL_C2_FV32_TIC1380A/PV.CV\n", " FV32 Bottom TIC SP Float °F B2_CL_C2_FV32_TIC1380A/SP.CV\n", " FV32 Brand Category B2_CL_C2_FV32/BRAND.CV\n", " FV32 Deviation Float B2_CL_C2_FV32/Prediction.Deviation\n", " FV32 Diacetyl Integer ppb B2_CL_C2_FV32/Diacetyl\n", " FV32 End Phase Time Float m B2_CL_C2_FV32/EndPhaseTime.CV\n", " FV32 FV Full Plato Float Plato B2_CL_C2_FV32/DcrsFvFullPlato\n", " FV32 Fermentation Start Time Timestamp B2_CL_C2_FV32/Fermentation_Start_Time\n", " FV32 Integrator Key Float B2_CL_C2_FV32/Integrator Key\n", " FV32 Middle TIC OUT Float % B2_CL_C2_FV32_TIC1380B/OUT.CV\n", " FV32 Middle TIC PV Float °F B2_CL_C2_FV32_TIC1380B/PV.CV\n", " FV32 Middle TIC SP Float °F B2_CL_C2_FV32_TIC1380B/SP.CV\n", " FV32 PIC OUT Float % B2_CL_C2_FV32_PIC1382/OUT.CV\n", " FV32 PIC PV Float psi B2_CL_C2_FV32_PIC1382/PV.CV\n", " FV32 PIC SP Float psi B2_CL_C2_FV32_PIC1382/SP.CV\n", " FV32 Phase Duration Integer B2_CL_C2_FV32/Phase Duration\n", " FV32 Plato Float Plato B2_CL_C2_FV32/Plato\n", " FV32 Predicted Transition String B2_CL_C2_FV32/Predicted Transition\n", " FV32 Status Category B2_CL_C2_FV32/STATUS.CV\n", " FV32 Top TIC OUT Float % B2_CL_C2_FV32_TIC1380C/OUT.CV\n", " FV32 Top TIC PV Float °F B2_CL_C2_FV32_TIC1380C/PV.CV\n", " FV32 Top TIC SP Float °F B2_CL_C2_FV32_TIC1380C/SP.CV\n", " FV32 Vessel Procedure String B2_CL_C2_FV32/VesselProcedure\n", " FV32 VesselID Integer B2_CL_C2_FV32/VesselID\n", " FV32 Volume Float bbl B2_CL_C2_FV32_LT1380/PV.CV\n", " FV32 Volume In Float bbl B2_CL_C2_FV32_FQ1380_A/TOTAL.CV\n", " FV32 Volume Out Float bbl B2_CL_C2_FV32_FQ1380_B/TOTAL.CV\n", " FV32 Yeast Generation Integer B2_CL_C2_FV32/YEASTGEN.CV\n", " FV32 Yeast Out Totalizer Float B2_CL_C2_FV32/YeastOutTotalizer\n", " FV32 Yeast Strain Category B2_CL_C2_FV32/YEAST.CV\n" ] } ], "source": [ "dataview_id = hub.asset_dataviews(asset=\"FV32\", filter=\"default\")[0]\n", "print(dataview_id)\n", "print(hub.dataview_definition(namespace_id, dataview_id).to_string(index=False))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Getting data from a Data View\n", "\n", "Return interpolated data between a start and end date, with the requested interpolation interval (format is HH:MM:SS)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " ==> Finished 'dataview_interpolated_pd' in 3.2561 secs [ 457 rows/sec ]\n" ] }, { "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", "
TimestampAsset_IdADFFV Full PlatoDiacetylEnd Phase TimeFermentation Start TimeIntegrator KeyPhase DurationPlato...Bottom TIC SPMiddle TIC OUTMiddle TIC PVMiddle TIC SPTop TIC OUTTop TIC PVTop TIC SPBrandStatusYeast Strain
02017-01-19 00:00:00FV320.10410813.506092NaNNaN2017-01-18T05:59:56.6180112Z12.1NaN12.1...63.017.35514663.03260863.08.69956763.06700563.0Realtime HopsFermentationNCYC1187
12017-01-19 00:30:00FV320.10410813.506092NaNNaN2017-01-18T05:59:56.6180112Z12.1NaN12.1...63.07.56875163.03538563.020.29933563.05560763.0Realtime HopsFermentationNCYC1187
22017-01-19 01:00:00FV320.10410813.506092NaNNaN2017-01-18T05:59:56.6180112Z12.1NaN12.1...63.04.25632963.01989763.046.98461563.24191763.0Realtime HopsFermentationNCYC1187
32017-01-19 01:30:00FV320.10410813.506092NaNNaN2017-01-18T05:59:56.6180112Z12.1NaN12.1...63.017.09240063.07990663.074.28406563.30508063.0Realtime HopsFermentationNCYC1187
42017-01-19 02:00:00FV320.10410813.506092NaNNaN2017-01-18T05:59:56.6180112Z12.1NaN12.1...63.046.46321063.17671663.042.70275563.15078063.0Realtime HopsFermentationNCYC1187
..................................................................
14842017-02-18 22:00:00FV320.65324814.707904337.0NaN2017-02-16T09:54:05.2240140Z337.0NaN5.1...60.00.00000063.29999568.00.00000063.40000068.0KerberosDiacetyl RestNCYC1187
14852017-02-18 22:30:00FV320.65324814.707904337.0NaN2017-02-16T09:54:05.2240140Z337.0NaN5.1...60.00.00000063.44020568.00.00000063.35067468.0KerberosDiacetyl RestNCYC1187
14862017-02-18 23:00:00FV320.65324814.707904337.0NaN2017-02-16T09:54:05.2240140Z337.0NaN5.1...60.00.00000063.19999768.00.00000063.19999768.0KerberosDiacetyl RestNCYC1187
14872017-02-18 23:30:00FV320.65324814.707904337.0NaN2017-02-16T09:54:05.2240140Z337.0NaN5.1...60.00.00000063.19999768.00.00000063.19999768.0KerberosDiacetyl RestNCYC1187
14882017-02-19 00:00:00FV320.65324814.707904337.0NaN2017-02-16T09:54:05.2240140Z337.0NaN5.1...60.00.00000063.15118468.00.00000063.40000068.0KerberosDiacetyl RestNCYC1187
\n", "

1489 rows × 34 columns

\n", "
" ], "text/plain": [ " Timestamp Asset_Id ADF FV Full Plato Diacetyl \\\n", "0 2017-01-19 00:00:00 FV32 0.104108 13.506092 NaN \n", "1 2017-01-19 00:30:00 FV32 0.104108 13.506092 NaN \n", "2 2017-01-19 01:00:00 FV32 0.104108 13.506092 NaN \n", "3 2017-01-19 01:30:00 FV32 0.104108 13.506092 NaN \n", "4 2017-01-19 02:00:00 FV32 0.104108 13.506092 NaN \n", "... ... ... ... ... ... \n", "1484 2017-02-18 22:00:00 FV32 0.653248 14.707904 337.0 \n", "1485 2017-02-18 22:30:00 FV32 0.653248 14.707904 337.0 \n", "1486 2017-02-18 23:00:00 FV32 0.653248 14.707904 337.0 \n", "1487 2017-02-18 23:30:00 FV32 0.653248 14.707904 337.0 \n", "1488 2017-02-19 00:00:00 FV32 0.653248 14.707904 337.0 \n", "\n", " End Phase Time Fermentation Start Time Integrator Key \\\n", "0 NaN 2017-01-18T05:59:56.6180112Z 12.1 \n", "1 NaN 2017-01-18T05:59:56.6180112Z 12.1 \n", "2 NaN 2017-01-18T05:59:56.6180112Z 12.1 \n", "3 NaN 2017-01-18T05:59:56.6180112Z 12.1 \n", "4 NaN 2017-01-18T05:59:56.6180112Z 12.1 \n", "... ... ... ... \n", "1484 NaN 2017-02-16T09:54:05.2240140Z 337.0 \n", "1485 NaN 2017-02-16T09:54:05.2240140Z 337.0 \n", "1486 NaN 2017-02-16T09:54:05.2240140Z 337.0 \n", "1487 NaN 2017-02-16T09:54:05.2240140Z 337.0 \n", "1488 NaN 2017-02-16T09:54:05.2240140Z 337.0 \n", "\n", " Phase Duration Plato ... Bottom TIC SP Middle TIC OUT \\\n", "0 NaN 12.1 ... 63.0 17.355146 \n", "1 NaN 12.1 ... 63.0 7.568751 \n", "2 NaN 12.1 ... 63.0 4.256329 \n", "3 NaN 12.1 ... 63.0 17.092400 \n", "4 NaN 12.1 ... 63.0 46.463210 \n", "... ... ... ... ... ... \n", "1484 NaN 5.1 ... 60.0 0.000000 \n", "1485 NaN 5.1 ... 60.0 0.000000 \n", "1486 NaN 5.1 ... 60.0 0.000000 \n", "1487 NaN 5.1 ... 60.0 0.000000 \n", "1488 NaN 5.1 ... 60.0 0.000000 \n", "\n", " Middle TIC PV Middle TIC SP Top TIC OUT Top TIC PV Top TIC SP \\\n", "0 63.032608 63.0 8.699567 63.067005 63.0 \n", "1 63.035385 63.0 20.299335 63.055607 63.0 \n", "2 63.019897 63.0 46.984615 63.241917 63.0 \n", "3 63.079906 63.0 74.284065 63.305080 63.0 \n", "4 63.176716 63.0 42.702755 63.150780 63.0 \n", "... ... ... ... ... ... \n", "1484 63.299995 68.0 0.000000 63.400000 68.0 \n", "1485 63.440205 68.0 0.000000 63.350674 68.0 \n", "1486 63.199997 68.0 0.000000 63.199997 68.0 \n", "1487 63.199997 68.0 0.000000 63.199997 68.0 \n", "1488 63.151184 68.0 0.000000 63.400000 68.0 \n", "\n", " Brand Status Yeast Strain \n", "0 Realtime Hops Fermentation NCYC1187 \n", "1 Realtime Hops Fermentation NCYC1187 \n", "2 Realtime Hops Fermentation NCYC1187 \n", "3 Realtime Hops Fermentation NCYC1187 \n", "4 Realtime Hops Fermentation NCYC1187 \n", "... ... ... ... \n", "1484 Kerberos Diacetyl Rest NCYC1187 \n", "1485 Kerberos Diacetyl Rest NCYC1187 \n", "1486 Kerberos Diacetyl Rest NCYC1187 \n", "1487 Kerberos Diacetyl Rest NCYC1187 \n", "1488 Kerberos Diacetyl Rest NCYC1187 \n", "\n", "[1489 rows x 34 columns]" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Use the first commented out line to access a full 3-year worth of data\n", "# df_fv32= hub.dataview_interpolated_pd(namespace_id, dataview_id, \"2017-01-19\", \"2020-01-19\", \"00:30:00\")\n", "# \n", "# This next line is for a single month of data\n", "df_fv32= hub.dataview_interpolated_pd(namespace_id, dataview_id, \"2017-01-19\", \"2017-02-19\", \"00:30:00\")\n", "df_fv32" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1489 entries, 0 to 1488\n", "Data columns (total 34 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Timestamp 1489 non-null datetime64[ns]\n", " 1 Asset_Id 1489 non-null object \n", " 2 ADF 753 non-null float64 \n", " 3 FV Full Plato 1347 non-null float64 \n", " 4 Diacetyl 932 non-null float64 \n", " 5 End Phase Time 0 non-null float64 \n", " 6 Fermentation Start Time 1303 non-null object \n", " 7 Integrator Key 1489 non-null float64 \n", " 8 Phase Duration 0 non-null float64 \n", " 9 Plato 753 non-null float64 \n", " 10 Predicted Transition 0 non-null float64 \n", " 11 Deviation 0 non-null float64 \n", " 12 VesselID 1489 non-null int64 \n", " 13 Vessel Procedure 0 non-null float64 \n", " 14 Yeast Generation 1486 non-null float64 \n", " 15 Yeast Out Totalizer 0 non-null float64 \n", " 16 Volume In 1486 non-null float64 \n", " 17 Volume Out 1486 non-null float64 \n", " 18 Volume 1486 non-null float64 \n", " 19 PIC OUT 1486 non-null float64 \n", " 20 PIC PV 1486 non-null float64 \n", " 21 PIC SP 1486 non-null float64 \n", " 22 Bottom TIC OUT 1486 non-null float64 \n", " 23 Bottom TIC PV 1486 non-null float64 \n", " 24 Bottom TIC SP 1486 non-null float64 \n", " 25 Middle TIC OUT 1486 non-null float64 \n", " 26 Middle TIC PV 1486 non-null float64 \n", " 27 Middle TIC SP 1486 non-null float64 \n", " 28 Top TIC OUT 1486 non-null float64 \n", " 29 Top TIC PV 1486 non-null float64 \n", " 30 Top TIC SP 1486 non-null float64 \n", " 31 Brand 1489 non-null object \n", " 32 Status 1489 non-null object \n", " 33 Yeast Strain 1489 non-null object \n", "dtypes: datetime64[ns](1), float64(27), int64(1), object(5)\n", "memory usage: 395.6+ KB\n" ] } ], "source": [ "# Information about the dataframe - this is a Pandas operation \n", "df_fv32.info()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Data Views with multiple assets\n", "\n", "Some Data Views return data for fermenter vessels 31 up to 36. Cell below is how to get their names. " ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['brewery-fv01--28', 'brewery-fv31--36', 'brewery-fv37--46']" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "multi_asset_dvs = hub.asset_dataviews(multiple_asset=True)\n", "multi_asset_dvs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Get result\n", "\n", "The column \"Asset_Id\" indicates which asset the data row belongs to. The data order is all data for FV31 in increasing time, followed by FV32 and so on up to FV36. \n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "++\n", " ==> Finished 'dataview_interpolated_pd' in 7.7044 secs [ 1.05K rows/sec ]\n" ] }, { "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", "
TimestampAsset_IdADFFV Full PlatoDiacetylEnd Phase TimeFermentation Start TimeIntegrator KeyPhase DurationPlato...Bottom TIC SPMiddle TIC OUTMiddle TIC PVMiddle TIC SPTop TIC OUTTop TIC PVTop TIC SPBrandStatusYeast Strain
02017-02-01 00:00:00FV310.71904617.08462570.0NaN2017-01-26T07:30:03.2369995Z-1.0NaN4.8...30.0100.00000053.79834030.0100.053.67471730.0Grey HorseCoolingNCYC1187
12017-02-01 00:30:00FV310.71904617.08462570.0NaN2017-01-26T07:30:03.2369995Z-1.0NaN4.8...30.0100.00000053.00958030.0100.052.92827030.0Grey HorseCoolingNCYC1187
22017-02-01 01:00:00FV310.71904617.08462570.0NaN2017-01-26T07:30:03.2369995Z-1.0NaN4.8...30.0100.00000052.35594030.0100.052.50703430.0Grey HorseCoolingNCYC1187
32017-02-01 01:30:00FV310.71904617.08462570.0NaN2017-01-26T07:30:03.2369995Z-1.0NaN4.8...30.0100.00000052.20000530.0100.051.93379030.0Grey HorseCoolingNCYC1187
42017-02-01 02:00:00FV310.71904617.08462570.0NaN2017-01-26T07:30:03.2369995Z-1.0NaN4.8...30.0100.00000051.79187830.0100.051.51772330.0Grey HorseCoolingNCYC1187
..................................................................
80652017-02-28 22:00:00FV360.32875112.513988NaNNaN2017-02-27T21:14:03.2750091Z8.4NaN8.4...65.025.07573565.11722665.00.064.71159065.0AdeleFermentationNCYC1187
80662017-02-28 22:30:00FV360.32875112.513988NaNNaN2017-02-27T21:14:03.2750091Z8.4NaN8.4...65.060.70724065.26777065.00.064.60000665.0AdeleFermentationNCYC1187
80672017-02-28 23:00:00FV360.32875112.513988NaNNaN2017-02-27T21:14:03.2750091Z8.4NaN8.4...65.036.78889065.17199065.00.064.60000665.0AdeleFermentationNCYC1187
80682017-02-28 23:30:00FV360.32875112.513988NaNNaN2017-02-27T21:14:03.2750091Z8.4NaN8.4...65.039.63534065.18529565.00.064.41279665.0AdeleFermentationNCYC1187
80692017-03-01 00:00:00FV360.32875112.513988NaNNaN2017-02-27T21:14:03.2750091Z8.4NaN8.4...65.038.64060265.18064065.00.064.60000665.0AdeleFermentationNCYC1187
\n", "

8070 rows × 34 columns

\n", "
" ], "text/plain": [ " Timestamp Asset_Id ADF FV Full Plato Diacetyl \\\n", "0 2017-02-01 00:00:00 FV31 0.719046 17.084625 70.0 \n", "1 2017-02-01 00:30:00 FV31 0.719046 17.084625 70.0 \n", "2 2017-02-01 01:00:00 FV31 0.719046 17.084625 70.0 \n", "3 2017-02-01 01:30:00 FV31 0.719046 17.084625 70.0 \n", "4 2017-02-01 02:00:00 FV31 0.719046 17.084625 70.0 \n", "... ... ... ... ... ... \n", "8065 2017-02-28 22:00:00 FV36 0.328751 12.513988 NaN \n", "8066 2017-02-28 22:30:00 FV36 0.328751 12.513988 NaN \n", "8067 2017-02-28 23:00:00 FV36 0.328751 12.513988 NaN \n", "8068 2017-02-28 23:30:00 FV36 0.328751 12.513988 NaN \n", "8069 2017-03-01 00:00:00 FV36 0.328751 12.513988 NaN \n", "\n", " End Phase Time Fermentation Start Time Integrator Key \\\n", "0 NaN 2017-01-26T07:30:03.2369995Z -1.0 \n", "1 NaN 2017-01-26T07:30:03.2369995Z -1.0 \n", "2 NaN 2017-01-26T07:30:03.2369995Z -1.0 \n", "3 NaN 2017-01-26T07:30:03.2369995Z -1.0 \n", "4 NaN 2017-01-26T07:30:03.2369995Z -1.0 \n", "... ... ... ... \n", "8065 NaN 2017-02-27T21:14:03.2750091Z 8.4 \n", "8066 NaN 2017-02-27T21:14:03.2750091Z 8.4 \n", "8067 NaN 2017-02-27T21:14:03.2750091Z 8.4 \n", "8068 NaN 2017-02-27T21:14:03.2750091Z 8.4 \n", "8069 NaN 2017-02-27T21:14:03.2750091Z 8.4 \n", "\n", " Phase Duration Plato ... Bottom TIC SP Middle TIC OUT \\\n", "0 NaN 4.8 ... 30.0 100.000000 \n", "1 NaN 4.8 ... 30.0 100.000000 \n", "2 NaN 4.8 ... 30.0 100.000000 \n", "3 NaN 4.8 ... 30.0 100.000000 \n", "4 NaN 4.8 ... 30.0 100.000000 \n", "... ... ... ... ... ... \n", "8065 NaN 8.4 ... 65.0 25.075735 \n", "8066 NaN 8.4 ... 65.0 60.707240 \n", "8067 NaN 8.4 ... 65.0 36.788890 \n", "8068 NaN 8.4 ... 65.0 39.635340 \n", "8069 NaN 8.4 ... 65.0 38.640602 \n", "\n", " Middle TIC PV Middle TIC SP Top TIC OUT Top TIC PV Top TIC SP \\\n", "0 53.798340 30.0 100.0 53.674717 30.0 \n", "1 53.009580 30.0 100.0 52.928270 30.0 \n", "2 52.355940 30.0 100.0 52.507034 30.0 \n", "3 52.200005 30.0 100.0 51.933790 30.0 \n", "4 51.791878 30.0 100.0 51.517723 30.0 \n", "... ... ... ... ... ... \n", "8065 65.117226 65.0 0.0 64.711590 65.0 \n", "8066 65.267770 65.0 0.0 64.600006 65.0 \n", "8067 65.171990 65.0 0.0 64.600006 65.0 \n", "8068 65.185295 65.0 0.0 64.412796 65.0 \n", "8069 65.180640 65.0 0.0 64.600006 65.0 \n", "\n", " Brand Status Yeast Strain \n", "0 Grey Horse Cooling NCYC1187 \n", "1 Grey Horse Cooling NCYC1187 \n", "2 Grey Horse Cooling NCYC1187 \n", "3 Grey Horse Cooling NCYC1187 \n", "4 Grey Horse Cooling NCYC1187 \n", "... ... ... ... \n", "8065 Adele Fermentation NCYC1187 \n", "8066 Adele Fermentation NCYC1187 \n", "8067 Adele Fermentation NCYC1187 \n", "8068 Adele Fermentation NCYC1187 \n", "8069 Adele Fermentation NCYC1187 \n", "\n", "[8070 rows x 34 columns]" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_fv31_36 = hub.dataview_interpolated_pd(namespace_id, multi_asset_dvs[1], \"2017-02-01\", \"2017-03-01\", \"00:30:00\")\n", "df_fv31_36" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 8070 entries, 0 to 8069\n", "Data columns (total 34 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Timestamp 8070 non-null datetime64[ns]\n", " 1 Asset_Id 8070 non-null object \n", " 2 ADF 4051 non-null float64 \n", " 3 FV Full Plato 7350 non-null float64 \n", " 4 Diacetyl 5652 non-null float64 \n", " 5 End Phase Time 0 non-null float64 \n", " 6 Fermentation Start Time 7083 non-null object \n", " 7 Integrator Key 8070 non-null float64 \n", " 8 Phase Duration 0 non-null float64 \n", " 9 Plato 4051 non-null float64 \n", " 10 Predicted Transition 0 non-null float64 \n", " 11 Deviation 0 non-null float64 \n", " 12 VesselID 8070 non-null int64 \n", " 13 Vessel Procedure 0 non-null float64 \n", " 14 Yeast Generation 8070 non-null int64 \n", " 15 Yeast Out Totalizer 0 non-null float64 \n", " 16 Volume In 8070 non-null float64 \n", " 17 Volume Out 8070 non-null float64 \n", " 18 Volume 8070 non-null float64 \n", " 19 PIC OUT 8070 non-null float64 \n", " 20 PIC PV 8070 non-null float64 \n", " 21 PIC SP 8070 non-null float64 \n", " 22 Bottom TIC OUT 8070 non-null float64 \n", " 23 Bottom TIC PV 8070 non-null float64 \n", " 24 Bottom TIC SP 8070 non-null float64 \n", " 25 Middle TIC OUT 8070 non-null float64 \n", " 26 Middle TIC PV 8070 non-null float64 \n", " 27 Middle TIC SP 8070 non-null float64 \n", " 28 Top TIC OUT 8070 non-null float64 \n", " 29 Top TIC PV 8070 non-null float64 \n", " 30 Top TIC SP 8070 non-null float64 \n", " 31 Brand 8070 non-null object \n", " 32 Status 8070 non-null object \n", " 33 Yeast Strain 8070 non-null object \n", "dtypes: datetime64[ns](1), float64(26), int64(2), object(5)\n", "memory usage: 2.1+ MB\n" ] } ], "source": [ "df_fv31_36.info()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.9" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }