Created
August 7, 2017 01:24
-
-
Save FavioVazquez/9817bc63da8378c672a697c80ce0589d to your computer and use it in GitHub Desktop.
Optimus Example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Optimus Example" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"This Notebook is a simple tutorial about DataFrameTransformer, DataFrameAnalyzer and Utilities modules.\n", | |
"\n", | |
"- DataFrameTransformer is a dedicated module to easily make dataFrame transformations. \n", | |
"\n", | |
"- DataFrameAnalyzer is a dedicated module to plot and see important features of a spark\n", | |
" Dataframe.\n", | |
"\n", | |
"- Utilities module contains tool classes that support use of DataFrameTransformer and DataFrameAnalyzer modules. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Importing Modules" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": { | |
"scrolled": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Importing DataFrameTransformer library\n", | |
"from optimus.DfTransf import DataFrameTransformer\n", | |
"# Importing DataFrameAnalyzer library\n", | |
"from optimus.DfAnalizer import DataFrameAnalizer\n", | |
"# Importing Utility library\n", | |
"from optimus.utilities import *\n", | |
"# Setting notebook to show plots inline\n", | |
"%matplotlib inline \n", | |
"# Import module for system tools \n", | |
"import os" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Instantiation of Utility class\n", | |
"The utility class is a tool class that includes functions to read csv files, setting checkpoint issues (to save or temporally save dataFrames)." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Instance of Utilities class\n", | |
"tools = Utilites(sc)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Deleting previous folder if exists...\n", | |
"Creation of checkpoint directory...\n", | |
"Listo.\n" | |
] | |
} | |
], | |
"source": [ | |
"tools.setCheckPointFolder(os.getcwd(),\"local\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Reading DataFrame" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Reading dataframe. os.getcwd() returns de current directory of the notebook \n", | |
"# 'file:///' is a prefix that specifies the type of file system used, in this\n", | |
"# case, local file system (hard drive of the pc) is used.\n", | |
"filePath = \"file:///\" + os.getcwd() + \"/foo.csv\"\n", | |
"\n", | |
"df = tools.readDatasetCsv(path=filePath,\n", | |
" delimiterMark=',')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Instantiation of analyzer class" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Instance of analyzer class\n", | |
"analyzer = DataFrameAnalizer(df=df,pathFile=filePath)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"DataFrameAnalizer has a method called columnAnalize. This method can check all rows of\n", | |
"dataFrame and tries to parse each element of each row to determine if the corresponding \n", | |
"element is a string or a number. Besides, it can show 20 distinct values of each column\n", | |
"classified according the possible datatype value, i.e: a number can be a string, so this \n", | |
"function can recognize a number in a column of string dataType by trying to parse the string. \n", | |
"\n", | |
"Also the function can plot numerical or categorical histograms." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### General view of DataFrame" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Initially it is a good idea to see a general view of the DataFrame to be analyzed. \n", | |
"\n", | |
"In the following cell, the basic results of analyzing the DataFrame are made are shown. Basic results include a table that specifies the existing datatypes in each column dataFrame and other features. Also, for this particular case, the table of dataType is shown in order to visualize a sample of column content. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": { | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>id</td></tr><tr><td colspan=3 ><b> Column datatype: </b>int</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>0</td><td>0.00 %</td></tr><tr><td>Integer</td><td>19</td><td>100.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa853f7ec50>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Min value: 1\n", | |
"Max value: 19\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr></tr><tr></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa853c28a90>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 25.062363862991333\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>firstName</td></tr><tr><td colspan=3 ><b> Column datatype: </b>string</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>19</td><td>100.00 %</td></tr><tr><td>Integer</td><td>0</td><td>0.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa853c28be0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th style='text-align: center'>strings</th></tr><tr><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>Arthur</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Johannes</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Max!!!</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Luis</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>JaMES</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>David</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Isaac</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Fred</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Emmy%%</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Albert</div></td></tr></table></td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa853bf57f0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 3.5475242137908936\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>lastName</td></tr><tr><td colspan=3 ><b> Column datatype: </b>string</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>19</td><td>100.00 %</td></tr><tr><td>Integer</td><td>0</td><td>0.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa853bef278>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th style='text-align: center'>strings</th></tr><tr><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>Nöether$</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Hoy&&&le</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Chadwick</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Einstein</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>dirac$</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Böhr//((%%</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Planck!!!</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>COM%%%pton</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>M$$ax%%well</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Ga%%%uss</div></td></tr></table></td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa853bfc898>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 3.17165207862854\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>billingId</td></tr><tr><td colspan=3 ><b> Column datatype: </b>int</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>0</td><td>0.00 %</td></tr><tr><td>Integer</td><td>19</td><td>100.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa853be9470>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Min value: 111\n", | |
"Max value: 992\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr></tr><tr></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa853fb9668>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 6.822814702987671\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>product</td></tr><tr><td colspan=3 ><b> Column datatype: </b>string</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>18</td><td>94.74 %</td></tr><tr><td>Integer</td><td>1</td><td>5.26 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa853c28438>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th style='text-align: center'>integers</th><th style='text-align: center'>strings</th></tr><tr><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>110790</div></td></tr></table></td><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>pasta</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>hamburguer</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>BEER</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Rice</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>taco</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>pizza</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>arepa</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>piza</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>Cake</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>taaaccoo</div></td></tr></table></td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa853bfc7f0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 3.046050548553467\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>price</td></tr><tr><td colspan=3 ><b> Column datatype: </b>int</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>0</td><td>0.00 %</td></tr><tr><td>Integer</td><td>19</td><td>100.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa853c01fd0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Min value: 1\n", | |
"Max value: 10\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr></tr><tr></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa853c019e8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 7.352012872695923\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>birth</td></tr><tr><td colspan=3 ><b> Column datatype: </b>string</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>19</td><td>100.00 %</td></tr><tr><td>Integer</td><td>0</td><td>0.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa853c01fd0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th style='text-align: center'>strings</th></tr><tr><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>1930/08/12</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>1956/11/30</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>1954/07/10</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>2000/03/22</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>1997/06/27</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>1923/03/12</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>1980/07/07</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>1990/07/09</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>1958/03/26</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>1993/12/08</div></td></tr></table></td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa853bef5f8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 3.1139016151428223\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>dummyCol</td></tr><tr><td colspan=3 ><b> Column datatype: </b>string</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>19</td><td>100.00 %</td></tr><tr><td>Integer</td><td>0</td><td>0.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa853bfcf60>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th style='text-align: center'>strings</th></tr><tr><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>gonna</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>give</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>#</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>down</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>up</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>and</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>run </div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>around</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>never </div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>desert</div></td></tr></table></td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa853c01550>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 3.1675310134887695\n", | |
"Total execution time: 56.63925886154175\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th colspan=3>General description</td></tr><tr><th colspan=1>Features</td><th colspan=2>Name or Quantity</td></tr><tr><th colspan=1>File Name</td><td colspan=2>foo.csv</td></tr><tr><th colspan=1>Columns</td><td colspan=2>8</td></tr><tr><th colspan=1>Rows</td><td colspan=2>19</td></tr>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.GeneralDescripTable at 0x7fa853f7e080>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"analyzerJson = analyzer.columnAnalize(columnList=\"*\", printType=True, plots=False)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The results obtained by running the analyzer class, details the presence of special chars, \n", | |
"string columns with possible numbers on them and None and empty string values in columns." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Instantiation of DataFrameTransformer\n", | |
"DataFrameTransformer is a specialized class to make dataFrame transformations. Transformations are optimized as much as possible to internally used native spark \n", | |
"transformation functions." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": { | |
"collapsed": true | |
}, | |
"outputs": [], | |
"source": [ | |
"# Instance of transformer class \n", | |
"transformer = DataFrameTransformer(df)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Trimming blanck spaces at beginning and endings of cells dataFrames" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Original dataFrame:\n", | |
"+---+---------+-----------+---------+-------+-----+----------+--------+\n", | |
"| id|firstName| lastName|billingId|product|price| birth|dummyCol|\n", | |
"+---+---------+-----------+---------+-------+-----+----------+--------+\n", | |
"| 1| Luis|Alvarez$$%!| 123| Cake| 10|1980/07/07| never|\n", | |
"| 2| André| Ampère| 423| piza| 8|1950/07/08| gonna|\n", | |
"| 3| NiELS| Böhr//((%%| 551| pizza| 8|1990/07/09| give|\n", | |
"| 4| PAUL| dirac$| 521| pizza| 8|1954/07/10| you|\n", | |
"| 5| Albert| Einstein| 634| pizza| 8|1990/07/11| up|\n", | |
"+---+---------+-----------+---------+-------+-----+----------+--------+\n", | |
"only showing top 5 rows\n", | |
"\n", | |
"Trimmed dataFrame:\n", | |
"+---+---------+-----------+---------+-------+-----+----------+--------+\n", | |
"| id|firstName| lastName|billingId|product|price| birth|dummyCol|\n", | |
"+---+---------+-----------+---------+-------+-----+----------+--------+\n", | |
"| 1| Luis|Alvarez$$%!| 123| Cake| 10|1980/07/07| never|\n", | |
"| 2| André| Ampère| 423| piza| 8|1950/07/08| gonna|\n", | |
"| 3| NiELS| Böhr//((%%| 551| pizza| 8|1990/07/09| give|\n", | |
"| 4| PAUL| dirac$| 521| pizza| 8|1954/07/10| you|\n", | |
"| 5| Albert| Einstein| 634| pizza| 8|1990/07/11| up|\n", | |
"+---+---------+-----------+---------+-------+-----+----------+--------+\n", | |
"only showing top 5 rows\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Printing of original dataFrame:\n", | |
"print('Original dataFrame:')\n", | |
"transformer.getDataframe().show(5)\n", | |
"\n", | |
"# Triming string blank spaces:\n", | |
"transformer.trimCol(\"*\")\n", | |
"\n", | |
"# Printing trimmed dataFrame:\n", | |
"print('Trimmed dataFrame:')\n", | |
"transformer.getDataframe().show(5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Removing especial chars and accents:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Original dataFrame:\n", | |
"+---+---------+-----------+---------+-------+-----+----------+--------+\n", | |
"| id|firstName| lastName|billingId|product|price| birth|dummyCol|\n", | |
"+---+---------+-----------+---------+-------+-----+----------+--------+\n", | |
"| 1| Luis|Alvarez$$%!| 123| Cake| 10|1980/07/07| never|\n", | |
"| 2| André| Ampère| 423| piza| 8|1950/07/08| gonna|\n", | |
"| 3| NiELS| Böhr//((%%| 551| pizza| 8|1990/07/09| give|\n", | |
"| 4| PAUL| dirac$| 521| pizza| 8|1954/07/10| you|\n", | |
"| 5| Albert| Einstein| 634| pizza| 8|1990/07/11| up|\n", | |
"+---+---------+-----------+---------+-------+-----+----------+--------+\n", | |
"only showing top 5 rows\n", | |
"\n", | |
"Removing special chars and accents dataFrame:\n", | |
"+---+---------+--------+---------+-------+-----+--------+--------+\n", | |
"| id|firstName|lastName|billingId|product|price| birth|dummyCol|\n", | |
"+---+---------+--------+---------+-------+-----+--------+--------+\n", | |
"| 1| Luis| Alvarez| 123| Cake| 10|19800707| never|\n", | |
"| 2| Andre| Ampere| 423| piza| 8|19500708| gonna|\n", | |
"| 3| NiELS| Bohr| 551| pizza| 8|19900709| give|\n", | |
"| 4| PAUL| dirac| 521| pizza| 8|19540710| you|\n", | |
"| 5| Albert|Einstein| 634| pizza| 8|19900711| up|\n", | |
"+---+---------+--------+---------+-------+-----+--------+--------+\n", | |
"only showing top 5 rows\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Printing of original dataFrame:\n", | |
"print('Original dataFrame:')\n", | |
"transformer.getDataframe().show(5)\n", | |
"\n", | |
"# Remove special chars:\n", | |
"transformer.removeSpecialChars(\"*\").clearAccents(\"*\")\n", | |
"\n", | |
"# This can also be done by passing a Regex if you want something more personalized\n", | |
"\n", | |
"#####################################################################\n", | |
"\n", | |
"#transformer.removeSpecialCharsRegex(\"*\",'[^\\w\\s]').clearAccents(\"*\")\n", | |
"\n", | |
"#####################################################################\n", | |
"\n", | |
"# Printing trimmed dataFrame:\n", | |
"print('Removing special chars and accents dataFrame:')\n", | |
"transformer.getDataframe().show(5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Drop dummy column" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Original dataFrame:\n", | |
"+---+---------+--------+---------+-------+-----+--------+--------+\n", | |
"| id|firstName|lastName|billingId|product|price| birth|dummyCol|\n", | |
"+---+---------+--------+---------+-------+-----+--------+--------+\n", | |
"| 1| Luis| Alvarez| 123| Cake| 10|19800707| never|\n", | |
"| 2| Andre| Ampere| 423| piza| 8|19500708| gonna|\n", | |
"| 3| NiELS| Bohr| 551| pizza| 8|19900709| give|\n", | |
"| 4| PAUL| dirac| 521| pizza| 8|19540710| you|\n", | |
"| 5| Albert|Einstein| 634| pizza| 8|19900711| up|\n", | |
"+---+---------+--------+---------+-------+-----+--------+--------+\n", | |
"only showing top 5 rows\n", | |
"\n", | |
"Dataframe without dummy column:\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"| id|firstName|lastName|billingId|product|price| birth|\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"| 1| Luis| Alvarez| 123| Cake| 10|19800707|\n", | |
"| 2| Andre| Ampere| 423| piza| 8|19500708|\n", | |
"| 3| NiELS| Bohr| 551| pizza| 8|19900709|\n", | |
"| 4| PAUL| dirac| 521| pizza| 8|19540710|\n", | |
"| 5| Albert|Einstein| 634| pizza| 8|19900711|\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"only showing top 5 rows\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Printing of original dataFrame:\n", | |
"print('Original dataFrame:')\n", | |
"transformer.getDataframe().show(5)\n", | |
"\n", | |
"# Droping a column:\n", | |
"transformer.dropCol(\"dummyCol\")\n", | |
"\n", | |
"# Printing trimmed dataFrame:\n", | |
"print('Dataframe without dummy column:')\n", | |
"transformer.getDataframe().show(5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Setting all letters to lowerCase" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 11, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Original dataFrame:\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"| id|firstName|lastName|billingId|product|price| birth|\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"| 1| Luis| Alvarez| 123| Cake| 10|19800707|\n", | |
"| 2| Andre| Ampere| 423| piza| 8|19500708|\n", | |
"| 3| NiELS| Bohr| 551| pizza| 8|19900709|\n", | |
"| 4| PAUL| dirac| 521| pizza| 8|19540710|\n", | |
"| 5| Albert|Einstein| 634| pizza| 8|19900711|\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"only showing top 5 rows\n", | |
"\n", | |
"Setting all letters to lowerCase:\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"| id|firstName|lastName|billingId|product|price| birth|\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"| 1| luis| alvarez| 123| cake| 10|19800707|\n", | |
"| 2| andre| ampere| 423| piza| 8|19500708|\n", | |
"| 3| niels| bohr| 551| pizza| 8|19900709|\n", | |
"| 4| paul| dirac| 521| pizza| 8|19540710|\n", | |
"| 5| albert|einstein| 634| pizza| 8|19900711|\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"only showing top 5 rows\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Printing of original dataFrame:\n", | |
"print('Original dataFrame:')\n", | |
"transformer.getDataframe().show(5)\n", | |
"\n", | |
"print('Setting all letters to lowerCase:')\n", | |
"transformer.lowerCase(\"*\")\n", | |
"transformer.getDataframe().show(5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Date Transformation (Format of date is changed)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 12, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Original dataFrame:\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"| id|firstName|lastName|billingId|product|price| birth|\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"| 1| luis| alvarez| 123| cake| 10|19800707|\n", | |
"| 2| andre| ampere| 423| piza| 8|19500708|\n", | |
"| 3| niels| bohr| 551| pizza| 8|19900709|\n", | |
"| 4| paul| dirac| 521| pizza| 8|19540710|\n", | |
"| 5| albert|einstein| 634| pizza| 8|19900711|\n", | |
"+---+---------+--------+---------+-------+-----+--------+\n", | |
"only showing top 5 rows\n", | |
"\n", | |
"Dataframe without dummy column:\n", | |
"+---+---------+--------+---------+-------+-----+----------+\n", | |
"| id|firstName|lastName|billingId|product|price| birth|\n", | |
"+---+---------+--------+---------+-------+-----+----------+\n", | |
"| 1| luis| alvarez| 123| cake| 10|07-07-1980|\n", | |
"| 2| andre| ampere| 423| piza| 8|08-07-1950|\n", | |
"| 3| niels| bohr| 551| pizza| 8|09-07-1990|\n", | |
"| 4| paul| dirac| 521| pizza| 8|10-07-1954|\n", | |
"| 5| albert|einstein| 634| pizza| 8|11-07-1990|\n", | |
"+---+---------+--------+---------+-------+-----+----------+\n", | |
"only showing top 5 rows\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Printing of original dataFrame:\n", | |
"print('Original dataFrame:')\n", | |
"transformer.getDataframe().show(5)\n", | |
"\n", | |
"# Priting the new date format:\n", | |
"print('Dataframe without dummy column:')\n", | |
"transformer.dateTransform(\"birth\", \"yyyyMMdd\", \"dd-MM-YYYY\") \\\n", | |
" .getDataframe() \\\n", | |
" .show(5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Age calculation from birth date client" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 13, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Original dataFrame:\n", | |
"+---+---------+--------+---------+-------+-----+----------+\n", | |
"| id|firstName|lastName|billingId|product|price| birth|\n", | |
"+---+---------+--------+---------+-------+-----+----------+\n", | |
"| 1| luis| alvarez| 123| cake| 10|07-07-1980|\n", | |
"| 2| andre| ampere| 423| piza| 8|08-07-1950|\n", | |
"| 3| niels| bohr| 551| pizza| 8|09-07-1990|\n", | |
"| 4| paul| dirac| 521| pizza| 8|10-07-1954|\n", | |
"| 5| albert|einstein| 634| pizza| 8|11-07-1990|\n", | |
"+---+---------+--------+---------+-------+-----+----------+\n", | |
"only showing top 5 rows\n", | |
"\n", | |
"Printing calculation of age born date client\n", | |
"+---+---------+--------+---------+-------+-----+----------+---------+\n", | |
"| id|firstName|lastName|billingId|product|price| birth|clientAge|\n", | |
"+---+---------+--------+---------+-------+-----+----------+---------+\n", | |
"| 1| luis| alvarez| 123| cake| 10|07-07-1980| 37.5484|\n", | |
"| 2| andre| ampere| 423| piza| 8|08-07-1950| 67.5618|\n", | |
"| 3| niels| bohr| 551| pizza| 8|09-07-1990| 27.5457|\n", | |
"| 4| paul| dirac| 521| pizza| 8|10-07-1954| 63.5565|\n", | |
"| 5| albert|einstein| 634| pizza| 8|11-07-1990| 27.5457|\n", | |
"+---+---------+--------+---------+-------+-----+----------+---------+\n", | |
"only showing top 5 rows\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Printing of original dataFrame:\n", | |
"print('Original dataFrame:')\n", | |
"transformer.getDataframe().show(5)\n", | |
"\n", | |
"print(\"Printing calculation of age born date client\")\n", | |
"transformer.ageCalculate(\"birth\", \"dd-MM-YYYY\", \"clientAge\") \\\n", | |
" .getDataframe() \\\n", | |
" .show(5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Renaming columns:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 14, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Original dataframe\n", | |
"+---+---------+--------+---------+-------+-----+----------+---------+\n", | |
"| id|firstName|lastName|billingId|product|price| birth|clientAge|\n", | |
"+---+---------+--------+---------+-------+-----+----------+---------+\n", | |
"| 1| luis| alvarez| 123| cake| 10|07-07-1980| 37.5484|\n", | |
"| 2| andre| ampere| 423| piza| 8|08-07-1950| 67.5618|\n", | |
"| 3| niels| bohr| 551| pizza| 8|09-07-1990| 27.5457|\n", | |
"| 4| paul| dirac| 521| pizza| 8|10-07-1954| 63.5565|\n", | |
"| 5| albert|einstein| 634| pizza| 8|11-07-1990| 27.5457|\n", | |
"+---+---------+--------+---------+-------+-----+----------+---------+\n", | |
"only showing top 5 rows\n", | |
"\n", | |
"Renaming some columns of dataFrame\n", | |
"+-------+---+---------+--------+---------+-------+-----+----------+\n", | |
"| age| id|firstName|lastName|billingId|product|price| birth|\n", | |
"+-------+---+---------+--------+---------+-------+-----+----------+\n", | |
"|37.5484| 1| luis| alvarez| 123| cake| 10|07-07-1980|\n", | |
"|67.5618| 2| andre| ampere| 423| piza| 8|08-07-1950|\n", | |
"|27.5457| 3| niels| bohr| 551| pizza| 8|09-07-1990|\n", | |
"|63.5565| 4| paul| dirac| 521| pizza| 8|10-07-1954|\n", | |
"|27.5457| 5| albert|einstein| 634| pizza| 8|11-07-1990|\n", | |
"+-------+---+---------+--------+---------+-------+-----+----------+\n", | |
"only showing top 5 rows\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Printing original dataframe:\n", | |
"print (\"Original dataframe\")\n", | |
"transformer.getDataframe().show(5)\n", | |
"print (\"Renaming some columns of dataFrame\")\n", | |
"transformer.renameCol(columns=[(\"clientAge\", \"age\")])\n", | |
"transformer.getDataframe().show(5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Changing positions of columns dataframe:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 15, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Original dataframe\n", | |
"+-------+---+---------+--------+---------+-------+-----+----------+\n", | |
"| age| id|firstName|lastName|billingId|product|price| birth|\n", | |
"+-------+---+---------+--------+---------+-------+-----+----------+\n", | |
"|37.5484| 1| luis| alvarez| 123| cake| 10|07-07-1980|\n", | |
"|67.5618| 2| andre| ampere| 423| piza| 8|08-07-1950|\n", | |
"|27.5457| 3| niels| bohr| 551| pizza| 8|09-07-1990|\n", | |
"|63.5565| 4| paul| dirac| 521| pizza| 8|10-07-1954|\n", | |
"|27.5457| 5| albert|einstein| 634| pizza| 8|11-07-1990|\n", | |
"+-------+---+---------+--------+---------+-------+-----+----------+\n", | |
"only showing top 5 rows\n", | |
"\n", | |
"age column moved\n", | |
"+---+---------+--------+-------+---------+-------+-----+----------+\n", | |
"| id|firstName|lastName| age|billingId|product|price| birth|\n", | |
"+---+---------+--------+-------+---------+-------+-----+----------+\n", | |
"| 1| luis| alvarez|37.5484| 123| cake| 10|07-07-1980|\n", | |
"| 2| andre| ampere|67.5618| 423| piza| 8|08-07-1950|\n", | |
"| 3| niels| bohr|27.5457| 551| pizza| 8|09-07-1990|\n", | |
"| 4| paul| dirac|63.5565| 521| pizza| 8|10-07-1954|\n", | |
"| 5| albert|einstein|27.5457| 634| pizza| 8|11-07-1990|\n", | |
"+---+---------+--------+-------+---------+-------+-----+----------+\n", | |
"only showing top 5 rows\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Printing original dataframe:\n", | |
"print (\"Original dataframe\")\n", | |
"transformer.getDataframe().show(5)\n", | |
"\n", | |
"# This action is to move column age, just after the lastName column\n", | |
"print (\"age column moved\")\n", | |
"transformer.moveCol(\"age\", \"lastName\", \"after\")\n", | |
"transformer.getDataframe().show(5)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Setting a custom transformation\n", | |
"The core of this function is base on the user define function provide from the lambda function provided in the 'func' argument. \n", | |
"\n", | |
"In this example, cells that are not greater than 20, are multiplied by 20, the rest of them stay intact." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 16, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Original dataframe\n", | |
"+---+---------+--------+-------+---------+-------+-----+----------+\n", | |
"| id|firstName|lastName| age|billingId|product|price| birth|\n", | |
"+---+---------+--------+-------+---------+-------+-----+----------+\n", | |
"| 1| luis| alvarez|37.5484| 123| cake| 10|07-07-1980|\n", | |
"| 2| andre| ampere|67.5618| 423| piza| 8|08-07-1950|\n", | |
"| 3| niels| bohr|27.5457| 551| pizza| 8|09-07-1990|\n", | |
"| 4| paul| dirac|63.5565| 521| pizza| 8|10-07-1954|\n", | |
"| 5| albert|einstein|27.5457| 634| pizza| 8|11-07-1990|\n", | |
"+---+---------+--------+-------+---------+-------+-----+----------+\n", | |
"only showing top 5 rows\n", | |
"\n", | |
" Multiplying by 20 a number if value in cell is greater than 20:\n", | |
"+---+------------+--------+--------+---------+----------+-----+----------+\n", | |
"| id| firstName|lastName| age|billingId| product|price| birth|\n", | |
"+---+------------+--------+--------+---------+----------+-----+----------+\n", | |
"| 1| luis| alvarez| 37.5484| 123| cake| 200|07-07-1980|\n", | |
"| 2| andre| ampere| 67.5618| 423| piza| 160|08-07-1950|\n", | |
"| 3| niels| bohr| 27.5457| 551| pizza| 160|09-07-1990|\n", | |
"| 4| paul| dirac| 63.5565| 521| pizza| 160|10-07-1954|\n", | |
"| 5| albert|einstein| 27.5457| 634| pizza| 160|11-07-1990|\n", | |
"| 6| galileo| galilei| 87.5511| 672| arepa| 100|12-08-1930|\n", | |
"| 7| carl| gauss| 47.5538| 323| taco| 60|13-07-1970|\n", | |
"| 8| david| hilbert| 67.5618| 624| taaaccoo| 60|14-07-1950|\n", | |
"| 9| johannes| kepler| 97.5538| 735| taco| 60|22-04-1920|\n", | |
"| 10| james| maxwell| 94.5457| 875| taco| 60|12-03-1923|\n", | |
"| 11| isaac| newton| 18.5565| 992| pasta| 180|15-02-1999|\n", | |
"| 12| emmy| noether| 24.5565| 234| pasta| 180|08-12-1993|\n", | |
"| 13| max| planck| 23.5591| 111|hamburguer| 80|04-01-1994|\n", | |
"| 14| fred| hoyle| 20.5511| 553| pizzza| 160|27-06-1997|\n", | |
"| 15| heinrich | hertz| 61.5618| 116| pizza| 160|30-11-1956|\n", | |
"| 16| william| gilbert| 59.5511| 886| beer| 40|26-03-1958|\n", | |
"| 17| marie| curie| 17.5591| 912| rice| 20|22-03-2000|\n", | |
"| 18| arthur| compton|118.5618| 812| 110790| 100|01-01-1899|\n", | |
"| 19| james|chadwick| 96.5591| 467| null| 200|03-05-1921|\n", | |
"+---+------------+--------+--------+---------+----------+-----+----------+\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Printing original dataframe:\n", | |
"print (\"Original dataframe\")\n", | |
"transformer.getDataframe().show(5)\n", | |
"\n", | |
"print (' Multiplying by 20 a number if value in cell is greater than 20:')\n", | |
"# Replacing a number: \n", | |
"func = lambda cell: (cell * 20) if ((cell != None) and (cell < 20)) else cell\n", | |
"transformer.setCol(['price'], func, 'integer')\n", | |
"transformer.getDataframe().show(20)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"After the transformation process detailed in the previous cells. It is a good idea to\n", | |
"analyze to see if the transformations have solved issued related with special characters, \n", | |
"presence of number in column where is to supposed only letters, etc." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Analyzing columns after transformations" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 17, | |
"metadata": { | |
"scrolled": false | |
}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>id</td></tr><tr><td colspan=3 ><b> Column datatype: </b>int</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>0</td><td>0.00 %</td></tr><tr><td>Integer</td><td>19</td><td>100.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa853c011d0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Min value: 1\n", | |
"Max value: 19\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr></tr><tr></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa853c01550>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nh1TuIiIe+v/x+gXTlR7kVQAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fa853bfc6a0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 16.309573650360107\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>firstName</td></tr><tr><td colspan=3 ><b> Column datatype: </b>string</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>19</td><td>100.00 %</td></tr><tr><td>Integer</td><td>0</td><td>0.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa850857b00>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th style='text-align: center'>strings</th></tr><tr><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>andre</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>niels</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>william</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>emmy</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>paul</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>max</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>arthur</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>carl</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>james</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>johannes</div></td></tr></table></td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa853bfc7f0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fa850820e10>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 7.408094644546509\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>lastName</td></tr><tr><td colspan=3 ><b> Column datatype: </b>string</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>19</td><td>100.00 %</td></tr><tr><td>Integer</td><td>0</td><td>0.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa8507c3518>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th style='text-align: center'>strings</th></tr><tr><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>bohr</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>gauss</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>hoyle</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>noether</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>maxwell</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>alvarez</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>hertz</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>hilbert</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>ampere</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>gilbert</div></td></tr></table></td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa8507269b0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEpCAYAAABoRGJ5AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xu8VWWdx/HPggOpeUGjhKOgpJaDpiheylEBNYReTmjq\nDy/jTI5KUqbN1HjJJnXMrLEpMU0Hycwk6YdZXiK0C5G38paZlywyTRExNAyFohN7/njWhn02HM7m\nnP2s57D29/16nZdnr7043/XbnvPbaz1rrWdnlUoFEREpl36pN0BERJpPzV1EpITU3EVESkjNXUSk\nhNTcRURKSM1dRKSE1Nylz8my7Posy36YejtENmZq7lJqWZYdmGVZJcuyHeuWX5gv93X8m44syz5Y\n0CaKRKHmLq3sL8AxWZa9O/WGiDSbmrv0aVmW7Z1l2fezLHs5y7LXsyx7MMuyCXXrTMqy7BdZli3P\nsmxplmUPZFm2V763fne+2u/zPfWf1PzThcC3gS90sw1nZVn2aJ7/UpZls7IsG1rz/Nj8Z78vy7L7\nsyxbkWXZw1mW7ZZ/3ZNv2wNZlo2s+9mjsyy7K//Zf8yy7JYsy3bo+SsmEqi5S1+3JfAtYBywN3An\ncFuWZe8AyLJsCDAbuAnYDXgPcDnQATwPTMp/zn7AUOADdT//XGDfLMuO7mY7PgG8CzgKGA7MWsc6\nlwDnA6OBlfk2XQ1cULPsa9WV80Y/H7gf2Ac4BPg78IMsyzbpZntE1q9SqehLX33qC7ge+OF6nv8l\ncH7+/V5ABdixi3UPXNfzwIXAgvz7LwG/BQbkjzuAD64nv5q5Xf54bP74yJp1js2XHV2z7Kh82eY1\ndc6q+9lvApbX/ix96asnX9pzlz4ty7K3Zln2lSzLfp0PubxO2EOvDl08RtibfzzLsu/kQyjDNjDm\nYmAwMLWLbRibZdmdWZY9n2XZMuCe/Kn64ZNf1nz/Us321S97W/7ffYGj8iGZ1/PaXgE2AXbZwBpE\nOlFzl77ueuAg4Oz8v6OAR4GBAJVK5e/ARMKQxoPA0cBvsiw7otGASqXyKmFI5dNZlm1V+1yWZcOB\nOcCzwHGE4ZP3508PrPtRf6v9setZ1q/mv9/Ia6r9egcwo9HtF1mXttQbINKNg4GzK5XKbQBZlr0Z\neDvweHWFSqVSAR7Ivz6bZdlc4GTgDsI4N0D/bnK+DHyEMGZea19gU+BjlUplRb4No3tTUI2HgD2A\n3+U1iDSN9tylr3saODHLsndlWTaKcJJydaPOsuyALMv+K8uy/bMsG55l2aGEhvlkvspzwCrgfVmW\nva1+z7yqUqn8FfgkcCad/y5+S9jj/niWZSOyLDsS+HSTavss8A/AjVmW7Zf//HFZlk3LsuztTcqQ\nFqXmLn3dyYTf0weA7wJzCcMvVa8RrpC5ldCIrwNmEsbRqVQqi4HzCFfFLMrX68oswrh5Vl1QqVQe\nAz4KfIjwhvEJ4GO9LwsqlcpTwAHA5oTzBk8C1xKOFJY2I0NaV6ajQRGR8tGeu4hICam5i4iUkJq7\niEgJqbmLiJSQmruISAmlvIlJl+mIiPRM1t0KSe9QffHFF5PkDh48mCVLlrRMbsrsVstNma2aWyO7\nvb29ofU0LCMiUkJq7iIiJVTKicM6Ojq46aabmDt3LosXLwZgyJAhjB8/nuOPPz5Z9kc/+tEkuTFr\n1mutmlVz35Ry+oFKrDH3D3/4w2y55ZYce+yxDB0aPg1t0aJFzJ49m6VLl3LzzTdHGytbX/aKFSuY\nNm1a4bkxa9ZrrZpVc7HyMfe+fUI1lscee4x77rmn07L29nZGjx7NgQcemCx7zJgxSXJj1qzXunOu\nai42u6w1N0Mpx9wHDRrE7bffzqpVq1YvW7VqFbfeeiuDBg1Klr311lsnyY1Zs17rzrmqudjsstbc\nDKUclnn++ee55JJLuPfee9lqq62oVCosW7aMAw44gE9+8pPsvffe0Q6n1pd92WWXscUWWxSeG7Nm\nvdaqWTUXq9FhmVI291qvvvoqANtss83qZUVdn1qfnSq3qGy91iTNVs3F5RaZXa+lx9wB/vznPzNv\n3jxeeil8JvGQIUMYO3YsW221zg/iKSR78ODBSXJj16zXWjXH1oo191Ypx9xnz57NhAkTuP/++1mx\nYgUrVqzgvvvuY+LEicyePTtZ9o033pgkN2bNeq1Vs2rum0o5LHPQQQdxxx13rPXuunTpUo444gh+\n/etfRzucWl/2pEmTmD9/fuG5MWvWa905VzUXm13WmtenacMyZnYdcATwsrvvvo7nTwTOycOWAVPd\n/ZcbusHNVKlUyLK1a+/Xrx+x38xSZbdabsps1VxcbsrslDU3QyNj7tcDVwI3dPH874Ex7v4nM5sI\nTAf2b87m9cyZZ57JhAkTOPjgg1dPsrNw4ULuvvtuzjrrrGTZn/rUp5LkxqxZr7VqVs19U0PDMma2\nI3DHuvbc69bbGnjc3bdrIDvq1TJLly5l/vz5LFq0CIChQ4cyZswYBg0aFP0sd1fZO++8c5Lc2DXr\ntVbNqrk4Tb0UcgOa+yeAXd391C6enwJMAXD30StXruw2O4a2tjY6OjpaJjdldqvlpsxWza2RPXDg\nQCjyUkgzGwecAnR5X667TycM2wBUinrXO+2007j22mtXPy7yHbc2O1Vukdl6rVVzkdmtUnOtRudz\nb0pzN7M9gBnARHd/pRk/s5mee+65lstutdyU2aq5NbJT1twTvW7uZjYcuAU4yd1/0/tNao6FCxcC\n4Yx3R0fH6sdA9Bsfuspevnw5m222WeG5ELdmvdaqWTX3Pd2OuZvZTcBYYDCwGLgAGADg7teY2Qzg\naKD6ttbh7vs0kB31hOoxxxxDlmVUKhUee+wx9txzz9WXNs2bNy/q4VRX2W9605uYOXNm4bmxa9Zr\nrZpVc3E0t0yN8ePHc9ddd61+XORYWW12qtwis/Vaq+Yis1ul5lqNNvdSTj8gItLq+l944YWpsi9c\ntmxZIUEDBw5k993XXMW52WabsXz58sKzU+UWma3XWjUXmd0qNdfKpzi+qLv1WmJYpl6qw6lUuSmz\nWy03ZbZqbo1sDcsAv/vd7zAzDjnkEACefPJJLr/88mTZl156aZLcImrWa62aU2SXvebeKHVzP/vs\nsznvvPNoawtXfI4cOZLbbrstWba7J8ktoma91qo5RXbZa+6NUjf3FStWsNdee3Va1r9//2TZ1V+O\nonOLqFmvdaCai80ue829Uermvs022/Dss8+unrbzjjvuYNttt02WPWTIkCS5RdSs11o1p8gue829\nUeoTqs899xxnn302Dz30EIMGDWLYsGFceeWVjBo1KvqJkHVlz5w5kze/+c2F5xZRs15r1ayai6Gb\nmGosX76cVatWsfnmmwPFnuWuzU6VC8XVrNdaNReZ3So112r5D8hesGABd955Z6cPtj388MPZeeed\nk2XHnosiVc16rVVzbK1Yc2+Vcsz9qquuYurUqVQqFUaNGsWoUaOoVCpMnTqVK6+8Mln2ZZddliQ3\nZs16rVWzau6bSjksc+CBBzJv3jwGDBjQafnKlSsZN24cTz/9dLTDqfVlH3bYYfz0pz8tPDdmzXqt\nO+eq5mKzy1rz+rT0TUz9+vVj8eLFay1/+eWX6dcvbsmpslstN2W2ai4uN2V2ypqboZRj7hdddBGT\nJ09mxIgRnT7Y9tlnn+Uzn/lMsuwrrrgiSW7MmvVaq2bV3DeVclgGYNWqVfziF7/odCJk1KhR9O/f\nP/pZ7q6yt9122yS5sWvWa62aVXNxWv5qmX79+jF8+PDqh8kyZMiQwu4qS5Xdarkps1Wzau7rStnc\nH3/8cc4991yWLVvG0KFDqVQqLFq0iC233JJLL72UcePGJcm++uqrGTZsWOG5MWvWa62aVXPfVMph\nmfe+9718/vOfZ++99+60/OGHH+acc87h0UcfjXY4tb7s888/n7lz5xaeG7Nmvdadc1VzsdllrXl9\nWvpqmeXLl6/1PwRg9OjRrFixIln2G2+8kSQ3Zs16rTvnquZis8taczOUcljmkEMO4aSTTuKYY45Z\nfZb7xRdf5Oabb2bs2LHJssePH58kN2bNeq1Vs2rum0o5LAPw4x//eK3bhsePH8+hhx4a/Sx3V9mT\nJ09Okhu7Zr3Wqlk1F0cTh62HPhJMuWXMVs2tkd3SY+7rc+ONNybLnjFjRpLcVDXrtS6Wai5Oypob\n1XLNPeGRSrLsVstNma2aWyM7Zc2N6vaEqpldBxwBvOzuu6/j+QyYBrwPWA580N0fafaGNkv1ZoRW\nym613JTZqrk1slPW3KhG9tyvByas5/mJwC751xTg6t5vVjxf+MIXkmVffPHFSXJT1azXuliquTgp\na25Ut3vu7v5TM9txPatMAm5w9wrwMzMbZGZD3X1RszZyQx122GHrXF6pVKKfAFlf9rpmmCsiN2bN\neq0756rmYrPLWnMzNOM69+2A52sev5AvS9bc//jHPzJz5kwGDRrUaXmlUmHSpEnJso866qgkuTFr\n1mvdOVc1F5td1pqbodCbmMxsCmHoBnfv8UdkLT7qgPU+f+gmFZZdcCb/sM3maz337n4raWtrS5I9\nZsyY0tVcxte6u+wy1txXf7+6y95Yay5CM5r7QqB25p7t82VrcffpwPT8YSXWoc1le+zY5XNf3uvt\ndHR0RDusWl/217/+9SS5MWvWa92Zai42u6w1r0/1btnuNKO53wacYWazgP2B11KOt4uISGOXQt4E\njAUGm9kLwAXAAAB3vwaYQ7gMcgHhUsiTY22siIg0ppGrZY7v5vkK8JGmbZGIiPRay92hKiLSCtTc\nRURKSM1dRKSE1NxFREpIzV1EpITU3EVESkjNXUSkhNTcRURKSM1dRKSE1NxFREpIzV1EpITU3EVE\nSkjNXUSkhNTcRURKSM1dRKSE1NxFREpIzV1EpITU3EVESkjNXUSkhNTcRURKSM1dRKSE1NxFREpI\nzV1EpITU3EVESkjNXUSkhNoaWcnMJgDTgP7ADHf/XN3zWwE3AsPzn/kFd/9ak7dVREQa1O2eu5n1\nB64CJgIjgePNbGTdah8BnnT3PYGxwP+a2cAmb6uIiDSokWGZ/YAF7v6Mu68EZgGT6tapAFuYWQZs\nDrwKdDR1S0VEpGGNDMtsBzxf8/gFYP+6da4EbgNeBLYAJrv7qvofZGZTgCkA7s7gwYN7ss0s7tG/\nWqOtrS1JdqrclNkbY27K7I0xN2X2xlpzERoac2/A4cCjwCHATsAPzOxud/9z7UruPh2Ynj+sLFmy\npEnxG6ajo4MU2alyU2a3Wm7KbNXcGtnt7e0NrdfIsMxCYFjN4+3zZbVOBm5x94q7LwB+D+za0BaI\niEjTNbLn/iCwi5mNIDT144AT6tb5A3AocLeZbQu8E3immRsqIiKN63bP3d07gDOAO4GnwiJ/wsxO\nN7PT89UuBg4ws18BPwLOcfc0x0oiItLYmLu7zwHm1C27pub7F4Hxzd00ERHpKd2hKiJSQmruIiIl\npOYuIlJCau4iIiWk5i4iUkJq7iIiJaTmLiJSQmruIiIlpOYuIlJCau4iIiWk5i4iUkJq7iIiJaTm\nLiJSQmruIiIlpOYuIlJCau4iIiWk5i4iUkJq7iIiJaTmLiJSQmruIiIlpOYuIlJCau4iIiWk5i4i\nUkJq7iIiJdTWyEpmNgGYBvQHZrj759axzljgcmAAsMTdxzRxO0VEZAN0u+duZv2Bq4CJwEjgeDMb\nWbfOIOArwPvdfTfg2AjbKiIiDWpkWGY/YIG7P+PuK4FZwKS6dU4AbnH3PwC4+8vN3UwREdkQjQzL\nbAc8X/P4BWD/unXeAQwws58AWwDT3P2GpmyhiIhssIbG3Bv8OaOBQ4FNgfvN7Gfu/pvalcxsCjAF\nwN0ZPHhwj8IW925baWtrS5KdKjdl9saYmzJ7Y8xNmb2x1lyERpr7QmBYzePt82W1XgBecfc3gDfM\n7KfAnkCn5u7u04Hp+cPKkiVLerTRvdXR0UGK7FS5KbNbLTdltmpujez29vaG1mukuT8I7GJmIwhN\n/TjCGHutW4ErzawNGEgYtvlSw1srIiJN1e0JVXfvAM4A7gSeCov8CTM73cxOz9d5CpgLPAY8QLhc\n8vF4my0iIuvT0Ji7u88B5tQtu6bu8WXAZc3bNBER6SndoSoiUkJq7iIiJaTmLiJSQmruIiIlpOYu\nIlJCau4iIiWk5i4iUkJq7iIiJaTmLiJSQmruIiIlpOYuIlJCau4iIiWk5i4iUkJq7iIiJaTmLiJS\nQmruIiIlpOYuIlJCau4iIiWk5i4iUkJq7iIiJaTmLiJSQmruIiIlpOYuIlJCau4iIiWk5i4iUkJt\njaxkZhOAaUB/YIa7f66L9fYF7geOc/ebm7aVIiKyQbrdczez/sBVwERgJHC8mY3sYr3PA3c1eyNF\nRGTDNDIssx+wwN2fcfeVwCxg0jrW+yjwbeDlJm6fiIj0QCPDMtsBz9c8fgHYv3YFM9sOOAoYB+zb\n1Q8ysynAFAB3Z/DgwRu6vQAs7tG/WqOtrS1JdqrclNkbY27K7I0xN2X2xlpzERoac2/A5cA57r7K\nzLpcyd2nA9Pzh5UlS5Y0KX7DdHR0kCI7VW7K7FbLTZmtmlsju729vaH1GhmWWQgMq3m8fb6s1j7A\nLDN7FjgG+IqZHdnQFoiISNM1suf+ILCLmY0gNPXjgBNqV3D3EdXvzex64A53/24Tt1NERDZAt3vu\n7t4BnAHcCTwVFvkTZna6mZ0eewNFRGTDNTTm7u5zgDl1y67pYt0P9n6zRESkN3SHqohICam5i4iU\nkJq7iEgJqbmLiJSQmruISAmpuYuIlJCau4hICam5i4iUkJq7iEgJqbmLiJSQmruISAmpuYuIlJCa\nu4hICam5i4iUkJq7iEgJqbmLiJSQmruISAmpuYuIlJCau4hICam5i4iUkJq7iEgJqbmLiJSQmruI\nSAmpuYuIlFBbIyuZ2QRgGtAfmOHun6t7/kTgHCADlgFT3f2XTd5WERFpULd77mbWH7gKmAiMBI43\ns5F1q/0eGOPu7wIuBqY3e0NFRKRxjey57wcscPdnAMxsFjAJeLK6grvfV7P+z4Dtm7mRIiKyYRoZ\nc98OeL7m8Qv5sq6cAny/NxslIiK909CYe6PMbByhuR/YxfNTgCkA7s7gwYN7lLO4pxuYa2trS5Kd\nKjdl9saYmzJ7Y8xNmb2x1lyERpr7QmBYzePt82WdmNkewAxgoru/sq4f5O7TWTMeX1myZMmGbW2T\ndHR0kCI7VW7K7FbLTZmtmlsju729vaH1GmnuDwK7mNkIQlM/DjihdgUzGw7cApzk7r/ZsE0VEZFm\n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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fa850804198>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 7.932518482208252\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>age</td></tr><tr><td colspan=3 ><b> Column datatype: </b>string</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>0</td><td>0.00 %</td></tr><tr><td>Integer</td><td>0</td><td>0.00 %</td></tr><tr><td>Float</td><td>19</td><td>100.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa8506c4550>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th style='text-align: center'>floats</th></tr><tr><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>18.5565</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>118.5618</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>97.5538</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>23.5591</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>59.5511</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>96.5591</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>61.5618</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>94.5457</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>24.5565</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>47.5538</div></td></tr></table></td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa8506d0518>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fa8506cce10>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 14.302423000335693\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>billingId</td></tr><tr><td colspan=3 ><b> Column datatype: </b>int</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>0</td><td>0.00 %</td></tr><tr><td>Integer</td><td>19</td><td>100.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa85066c9e8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Min value: 111\n", | |
"Max value: 992\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr></tr><tr></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa8505e1550>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fa8506d5940>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 14.835514307022095\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>product</td></tr><tr><td colspan=3 ><b> Column datatype: </b>string</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>18</td><td>94.74 %</td></tr><tr><td>Integer</td><td>1</td><td>5.26 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa850575518>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th style='text-align: center'>integers</th><th style='text-align: center'>strings</th></tr><tr><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>110790</div></td></tr></table></td><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>pasta</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>hamburguer</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>cake</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>taco</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>pizza</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>arepa</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>piza</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>beer</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>rice</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>taaaccoo</div></td></tr></table></td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa850592cc0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nxnGb2RxgDoBzrsd3zjiRt8mAAQMyF9dn7L2fKuv0+d/t+A3f+8jZDB3Ydg2HMIQZb5x+Ym3uJHZn\ncT/1cpjJNp9IXLW5d2MnGTctvVa4nXN3A3fHD0Mfn1xNTU1ePjF9xU069oXvHMqhpmY+UHTqMc9N\nnjzZS9xzhw1Wm1OM3R/b7HNfd6ZlMlAuNHNSOnTbB9/d4XMPPPBAYm/uzuJ+c+IfJRIzl9hqc3px\nk2yzz33dWzQcUEQkY7os3Ga2AngG+GMz22Vms5JPS0REOpLLqJLL0khERERyo64SEZGMUeEWEckY\nFW4RkYxR4RYRyRgVbhGRjFHhFhHJGBVuEZGMUeEWEckYFW4RkYxR4RYRyRgVbhGRjFHhFhHJGBVu\nEZGMUeEWEckYFW4RkYxR4RYRyRgVbhGRjFHhFhHJGBVuEZGMUeEWEckYFW4RkYxR4RYRyRgVbhGR\njFHhFhHJGBVuEZGMUeEWEckYFW4RkYxR4RYRyRgVbhGRjFHhFhHJGBVuEZGMUeEWEckYFW4RkYwZ\nkMuLzKwKuAMoBO5xzn010axERKRDXR5xm1khsBy4GJgAXGZmE5JOTEREji+XrpKPANudc//tnDsM\n/ACYnmxaIiLSkSAMw05fYGYzgCrn3BXx45nAR51zf9fudXOAOQDOudJk0hUR6deCXF7UaxcnnXN3\nO+c+5Jz7UBw89S8z25RPcdXm/IirNudH3PgrJ7kU7t3AmFaPz4y3iYiIB7mMKvk5cLaZjSMq2H8F\n/HWiWYmISIe6POJ2zjUBfwesBV6MNrkXkk6sh+7Os7g+Y6vN+RFbbe6Durw4KSIifYtmToqIZIwK\nt4hIxqhwi4hkjAq39HlmVmhmX/OdR74xs1N95yDHl9MiU32ZmZ0MzAI+AJzcst0594WE454JfBM4\nDwiB9cB859yuJOPGsc8A/oFo7ZjWba5IMGYh8BPnXHlSMTrinDtiZuelHRfAzN4L3AWMcM6dY2Yf\nBD7hnLvFRz5pMLMy4B5gMDDWzP4U+KJz7qqE454NLOXY9/UfJRm3VfxLOLaO3JxG7O7KfOEGvge8\nBEwFbgY+QzRsMWnfBb4PXBo//my87c9TiP0Q8DBwCXAl8DfA75IMGBfPZjMb6px7I8lYHdhsZo8A\nNcChVnn9KOG4/wr8PfDtON4WM/s+kGjhNrOhQBXwrnjTbmCtc25/knFj/0L09/QIgHPuF2Y2OYW4\n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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fa850567f60>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 7.535818338394165\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>price</td></tr><tr><td colspan=3 ><b> Column datatype: </b>int</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>0</td><td>0.00 %</td></tr><tr><td>Integer</td><td>19</td><td>100.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa850607eb8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Min value: 20\n", | |
"Max value: 200\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr></tr><tr></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa85074e198>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fa85074ec18>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 14.255857944488525\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><td colspan=3 ><b> Column name: </b>birth</td></tr><tr><td colspan=3 ><b> Column datatype: </b>string</td></tr><tr><th>Datatype</td><th>Quantity</td><th>Percentage</td></tr><tr><td>None</td><td>0</td><td>0.00 %</td></tr><tr><td>Empty str</td><td>0</td><td>0.00 %</td></tr><tr><td>String</td><td>19</td><td>100.00 %</td></tr><tr><td>Integer</td><td>0</td><td>0.00 %</td></tr><tr><td>Float</td><td>0</td><td>0.00 %</td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.ColumnTables at 0x7fa850644ba8>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th style='text-align: center'>strings</th></tr><tr><td style='vertical-align: top;text-align: center;'><table width=100%><tr ><td style='text-align: center'><div style='min-height: 20px;'>10-07-1954</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>01-01-1899</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>26-03-1958</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>07-07-1980</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>09-07-1990</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>22-03-2000</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>15-02-1999</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>12-08-1930</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>13-07-1970</div></td></tr><tr ><td style='text-align: center'><div style='min-height: 20px;'>04-01-1994</div></td></tr></table></td></tr></table>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.DataTypeTable at 0x7fa850639fd0>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\nRU5ErkJggg==\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7fa850638630>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "display_data" | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"end of __analyze 7.44434928894043\n", | |
"Total execution time: 90.9842917919159\n" | |
] | |
}, | |
{ | |
"data": { | |
"text/html": [ | |
"<table width=50%><tr><th colspan=3>General description</td></tr><tr><th colspan=1>Features</td><th colspan=2>Name or Quantity</td></tr><tr><th colspan=1>File Name</td><td colspan=2>foo.csv</td></tr><tr><th colspan=1>Columns</td><td colspan=2>8</td></tr><tr><th colspan=1>Rows</td><td colspan=2>19</td></tr>" | |
], | |
"text/plain": [ | |
"<libs.DfAnalizer.GeneralDescripTable at 0x7fa8505b9160>" | |
] | |
}, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Setting the new dataFrame transformed into the analyzer class\n", | |
"analyzer.setDataframe(transformer.getDataframe())\n", | |
"analyzerJson = analyzer.columnAnalize(\"*\", printType=True, plots=True)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"It can be seen from output of the analyzer object, that there are columns with numbers\n", | |
"even when ceratin column (for example) is supposed to be only of words or letters. \n", | |
"\n", | |
"In order to solve this problem, operationInType function of DataFrameTransformer class \n", | |
"can be used. \n", | |
"\n", | |
"operationInType function is useful to make operations in a certain element of one dataType. In this particular example, it can be seen in the last output cell (specifically in 'product' column' that are values that don't fit the rest of the data, the aren't strings but they are numbers or empty strings. operationInType can take care about them and clean the column dataFrame." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"In the following example, operationInType of function of DataFrameTransformer class is run in order to converts all posible \n", | |
"parsables strings to integer into a null or none value. Notice how the 110790 value in product\n", | |
"column have been changed, but the rest of the column has remained intact." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Making transformation in the inferred dataType elements of a certains columns" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 18, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"+---+------------+--------+--------+---------+-----+----------+----------+\n", | |
"| id| firstName|lastName| age|billingId|price| birth| product|\n", | |
"+---+------------+--------+--------+---------+-----+----------+----------+\n", | |
"| 1| luis| alvarez| 37.5484| 123| 200|07-07-1980| cake|\n", | |
"| 2| andre| ampere| 67.5618| 423| 160|08-07-1950| piza|\n", | |
"| 3| niels| bohr| 27.5457| 551| 160|09-07-1990| pizza|\n", | |
"| 4| paul| dirac| 63.5565| 521| 160|10-07-1954| pizza|\n", | |
"| 5| albert|einstein| 27.5457| 634| 160|11-07-1990| pizza|\n", | |
"| 6| galileo| galilei| 87.5511| 672| 100|12-08-1930| arepa|\n", | |
"| 7| carl| gauss| 47.5538| 323| 60|13-07-1970| taco|\n", | |
"| 8| david| hilbert| 67.5618| 624| 60|14-07-1950| taaaccoo|\n", | |
"| 9| johannes| kepler| 97.5538| 735| 60|22-04-1920| taco|\n", | |
"| 10| james| maxwell| 94.5457| 875| 60|12-03-1923| taco|\n", | |
"| 11| isaac| newton| 18.5565| 992| 180|15-02-1999| pasta|\n", | |
"| 12| emmy| noether| 24.5565| 234| 180|08-12-1993| pasta|\n", | |
"| 13| max| planck| 23.5591| 111| 80|04-01-1994|hamburguer|\n", | |
"| 14| fred| hoyle| 20.5511| 553| 160|27-06-1997| pizzza|\n", | |
"| 15| heinrich | hertz| 61.5618| 116| 160|30-11-1956| pizza|\n", | |
"| 16| william| gilbert| 59.5511| 886| 40|26-03-1958| beer|\n", | |
"| 17| marie| curie| 17.5591| 912| 20|22-03-2000| rice|\n", | |
"| 18| arthur| compton|118.5618| 812| 100|01-01-1899| null|\n", | |
"| 19| james|chadwick| 96.5591| 467| 200|03-05-1921| null|\n", | |
"+---+------------+--------+--------+---------+-----+----------+----------+\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# This function makes changes or transformation in the column specified only in the cells\n", | |
"# that are recognized as the dataType specified. \n", | |
"transformer.operationInType([('product', 'integer', None)]).getDataframe().show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Sometimes there a some values that are different but actually are the same. In the product\n", | |
"column for example, there are the following values: 'taaaccoo', 'piza'. It \n", | |
"can be inferred that the correct value is taco and piza and not the rest of them. This problem can\n", | |
"be solved with the lookup function of the DataFrameTransformer class." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Replacing multiple string values to a single string" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 19, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"+---+------------+--------+--------+---------+-----+----------+----------+\n", | |
"| id| firstName|lastName| age|billingId|price| birth| product|\n", | |
"+---+------------+--------+--------+---------+-----+----------+----------+\n", | |
"| 1| luis| alvarez| 37.5484| 123| 200|07-07-1980| cake|\n", | |
"| 2| andre| ampere| 67.5618| 423| 160|08-07-1950| pizza|\n", | |
"| 3| niels| bohr| 27.5457| 551| 160|09-07-1990| pizza|\n", | |
"| 4| paul| dirac| 63.5565| 521| 160|10-07-1954| pizza|\n", | |
"| 5| albert|einstein| 27.5457| 634| 160|11-07-1990| pizza|\n", | |
"| 6| galileo| galilei| 87.5511| 672| 100|12-08-1930| arepa|\n", | |
"| 7| carl| gauss| 47.5538| 323| 60|13-07-1970| taco|\n", | |
"| 8| david| hilbert| 67.5618| 624| 60|14-07-1950| taco|\n", | |
"| 9| johannes| kepler| 97.5538| 735| 60|22-04-1920| taco|\n", | |
"| 10| james| maxwell| 94.5457| 875| 60|12-03-1923| taco|\n", | |
"| 11| isaac| newton| 18.5565| 992| 180|15-02-1999| pasta|\n", | |
"| 12| emmy| noether| 24.5565| 234| 180|08-12-1993| pasta|\n", | |
"| 13| max| planck| 23.5591| 111| 80|04-01-1994|hamburguer|\n", | |
"| 14| fred| hoyle| 20.5511| 553| 160|27-06-1997| pizza|\n", | |
"| 15| heinrich | hertz| 61.5618| 116| 160|30-11-1956| pizza|\n", | |
"| 16| william| gilbert| 59.5511| 886| 40|26-03-1958| beer|\n", | |
"| 17| marie| curie| 17.5591| 912| 20|22-03-2000| rice|\n", | |
"| 18| arthur| compton|118.5618| 812| 100|01-01-1899| null|\n", | |
"| 19| james|chadwick| 96.5591| 467| 200|03-05-1921| null|\n", | |
"+---+------------+--------+--------+---------+-----+----------+----------+\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"transformer.lookup('product', strToReplace='taco', listStr=['taaaccoo']) \n", | |
"transformer.lookup('product', strToReplace='pizza', listStr=['piza', 'pizzza']) \n", | |
"transformer.getDataframe().show()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"As can be notice above, string specified in the list argument 'listStr' have been\n", | |
"replaced to 'strToReplace' value. " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"## Chaining and lazy evaluation" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"The past transformations were done step by step, but this can be achieved by chaining\n", | |
"all operations into one line of code, like the cell below. This way is much more efficient and scalable because it uses all optimization issues from the lazy evaluation approach." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"All the transformation set before can be done into a single line of code thanks to the \n", | |
"chaining feature of the DataFrameTransformer class. This option is a optimal way to \n", | |
"make different transformations, because it uses as much as possible all advantages of\n", | |
"the lazy evaluation approach. " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 20, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"+---+--------------------+--------------------+---------+----------+-----+----------+--------+\n", | |
"| id| firstName| lastName|billingId| product|price| birth|dummyCol|\n", | |
"+---+--------------------+--------------------+---------+----------+-----+----------+--------+\n", | |
"| 1| Luis| Alvarez$$%!| 123| Cake| 10|1980/07/07| never|\n", | |
"| 2| André| Ampère| 423| piza| 8|1950/07/08| gonna|\n", | |
"| 3| NiELS| Böhr//((%%| 551| pizza| 8|1990/07/09| give|\n", | |
"| 4| PAUL| dirac$| 521| pizza| 8|1954/07/10| you|\n", | |
"| 5| Albert| Einstein| 634| pizza| 8|1990/07/11| up|\n", | |
"| 6| Galileo| GALiLEI| 672| arepa| 5|1930/08/12| never|\n", | |
"| 7| CaRL| Ga%%%uss| 323| taco| 3|1970/07/13| gonna|\n", | |
"| 8| David| H$$$ilbert| 624| taaaccoo| 3|1950/07/14| let|\n", | |
"| 9| Johannes| KEPLER| 735| taco| 3|1920/04/22| you|\n", | |
"| 10| JaMES| M$$ax%%well| 875| taco| 3|1923/03/12| down|\n", | |
"| 11| Isaac| Newton| 992| pasta| 9|1999/02/15| never |\n", | |
"| 12| Emmy%%| Nöether$| 234| pasta| 9|1993/12/08| gonna|\n", | |
"| 13| Max!!!| Planck!!!| 111|hamburguer| 4|1994/01/04| run |\n", | |
"| 14| Fred| Hoy&&&le| 553| pizzza| 8|1997/06/27| around|\n", | |
"| 15|((( Heinrich )))))| Hertz| 116| pizza| 8|1956/11/30| and|\n", | |
"| 16| William| Gilbert###| 886| BEER| 2|1958/03/26| desert|\n", | |
"| 17| Marie| CURIE| 912| Rice| 1|2000/03/22| you|\n", | |
"| 18| Arthur| COM%%%pton| 812| 110790| 5|1899/01/01| #|\n", | |
"| 19| JAMES| Chadwick| 467| null| 10|1921/05/03| #|\n", | |
"+---+--------------------+--------------------+---------+----------+-----+----------+--------+\n", | |
"\n", | |
"+---+------------+--------+---------+-----+----------+---------+----------+\n", | |
"| id| firstName|lastName|billingId|price| birth|clientAge| product|\n", | |
"+---+------------+--------+---------+-----+----------+---------+----------+\n", | |
"| 1| luis| alvarez| 123| 10|07-07-1980| 37.5484| cake|\n", | |
"| 2| andre| ampere| 423| 8|08-07-1950| 67.5618| pizza|\n", | |
"| 3| niels| bohr| 551| 8|09-07-1990| 27.5457| pizza|\n", | |
"| 4| paul| dirac| 521| 8|10-07-1954| 63.5565| pizza|\n", | |
"| 5| albert|einstein| 634| 8|11-07-1990| 27.5457| pizza|\n", | |
"| 6| galileo| galilei| 672| 5|12-08-1930| 87.5511| arepa|\n", | |
"| 7| carl| gauss| 323| 3|13-07-1970| 47.5538| taco|\n", | |
"| 8| david| hilbert| 624| 3|14-07-1950| 67.5618| taco|\n", | |
"| 9| johannes| kepler| 735| 3|22-04-1920| 97.5538| taco|\n", | |
"| 10| james| maxwell| 875| 3|12-03-1923| 94.5457| taco|\n", | |
"| 11| isaac| newton| 992| 9|15-02-1999| 18.5565| pasta|\n", | |
"| 12| emmy| noether| 234| 9|08-12-1993| 24.5565| pasta|\n", | |
"| 13| max| planck| 111| 4|04-01-1994| 23.5591|hamburguer|\n", | |
"| 14| fred| hoyle| 553| 8|27-06-1997| 20.5511| pizza|\n", | |
"| 15| heinrich | hertz| 116| 8|30-11-1956| 61.5618| pizza|\n", | |
"| 16| william| gilbert| 886| 2|26-03-1958| 59.5511| beer|\n", | |
"| 17| marie| curie| 912| 1|22-03-2000| 17.5591| rice|\n", | |
"| 18| arthur| compton| 812| 5|01-01-1899| 118.5618| null|\n", | |
"| 19| james|chadwick| 467| 10|03-05-1921| 96.5591| null|\n", | |
"+---+------------+--------+---------+-----+----------+---------+----------+\n", | |
"\n" | |
] | |
} | |
], | |
"source": [ | |
"# Instanciate DataFrameTransfomer\n", | |
"transformer = DataFrameTransformer(df)\n", | |
"# Get original dataFrame to show it.\n", | |
"transformer.getDataframe().show()\n", | |
"\n", | |
"# Chaining function transformations\n", | |
"transformer.trimCol(\"*\") \\\n", | |
" .removeSpecialChars(\"*\") \\\n", | |
" .clearAccents(\"*\") \\\n", | |
" .lowerCase(\"*\") \\\n", | |
" .dropCol(\"dummyCol\") \\\n", | |
" .dateTransform(\"birth\", \"yyyyMMdd\", \"dd-MM-YYYY\") \\\n", | |
" .ageCalculate(\"birth\", \"dd-MM-YYYY\", \"clientAge\") \\\n", | |
" .operationInType([('product', 'integer', None)]) \\\n", | |
" .lookup('product', strToReplace='taco', listStr=['taaaccoo']) \\\n", | |
" .lookup('product', strToReplace='pizza', listStr=['piza', 'pizzza']) \\\n", | |
" \n", | |
" \n", | |
"transformer.getDataframe().show()" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3.0 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.5.0" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 0 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment