Procesos ETVL usando IPython -- 9 -- Taller

Notas de clase sobre la extracción, transformación, visualización y carga de datos usando IPython

Juan David Velásquez Henao
jdvelasq@unal.edu.co
Universidad Nacional de Colombia, Sede Medellín
Facultad de Minas
Medellín, Colombia

Licencia
Readme

Software utilizado.

Este es un documento interactivo escrito como un notebook de Jupyter, en el cual se presenta un tutorial sobre la extracción, transformación, visualización y carga de datos usando Python en el contexto de la ciencia de los datos. Los notebooks de Jupyter permiten incoporar simultáneamente código, texto, gráficos y ecuaciones. El código presentado en este notebook puede ejecutarse en los sistemas operativos Windows, Linux y OS X.

Haga click aquí para obtener instrucciones detalladas sobre como instalar Jupyter en Windows y Mac OS X.

Haga clic aquí para ver la última versión de este documento en nbviewer.

Descargue la última versión de este documento a su disco duro; luego, carguelo y ejecutelo en línea en Try Jupyter!

Contenido

*

Para el archivo AportesDiario_2015.csv, responda las siguientes preguntas usando IPython.


In [14]:
import pandas as pd
import statistics as st
import numpy as np

1.-- Cuántos registros tiene el archivo?


In [8]:
x=pd.read_csv('AportesDiario_2015.csv', sep=';',decimal=',',thousands='.',skiprows=2)
len(x)


Out[8]:
10265

In [9]:
x.head()


Out[9]:
Fecha Region Hidrologica Nombre Rio Aportes Caudal m3/s Aportes Energia kWh Aportes %
0 1/01/2015 ANTIOQUIA A. SAN LORENZO 19.39 4431100.0 79,70%
1 1/01/2015 ANTIOQUIA CONCEPCION 4.64 1266200.0 90,44%
2 1/01/2015 ANTIOQUIA DESV. EEPPM (NEC,PAJ,DOL) 6.10 1666400.0 76,09%
3 1/01/2015 ANTIOQUIA DESV. MANSO 0.00 NaN NaN
4 1/01/2015 ANTIOQUIA GRANDE 14.79 4638900.0 63,20%

2.-- Cuántas regiones hidrológicas diferentes hay?


In [10]:
len(set(x['Region Hidrologica']))


Out[10]:
6

3.-- Cuántos rios hay?


In [11]:
len(set(x['Nombre Rio']))


Out[11]:
30

4.-- Cuántos registros hay por región hidrológica?


In [17]:
y = x.groupby('Region Hidrologica')
y.size()


Out[17]:
Region Hidrologica
ANTIOQUIA         4745
CARIBE             365
CENTRO            1870
ORIENTE           1095
RIOS ESTIMADOS     365
VALLE             1825
dtype: int64

5.-- Cuál es el promedio de aportes en energía kWh por región?


In [13]:
x.groupby('Region Hidrologica').mean()['Aportes %']


Out[13]:
Region Hidrologica
ANTIOQUIA         4.458441e+06
CARIBE            3.036068e+06
CENTRO            5.426429e+06
ORIENTE           1.216842e+07
RIOS ESTIMADOS    2.859855e+06
VALLE             1.212576e+06
Name: Aportes Energia kWh, dtype: float64

6.-- Cuáles registros no tienen datos?


In [35]:
Caudal=len(x[x['Aportes Caudal m3/s'].isnull()])
Aportes=len(x[x['Aportes Energia kWh'].isnull()])
Aport =len(x[x['Aportes %'].isnull()])

print (Caudal)
print (Aportes)
print (Aport)


367
242
244

In [36]:
# x.dropna() borra los registros na
len(x) - len(x.dropna())


Out[36]:
609

7.-- Grafique (gráfico de barras) la producción promedio por región hidrológica?


In [38]:
import matplotlib
%matplotlib inline

In [39]:
x.groupby('Region Hidrologica').mean()['Aportes Energia kWh'].plot(kind='bar')


Out[39]:
<matplotlib.axes._subplots.AxesSubplot at 0x20bae166cf8>

In [ ]:


In [ ]:


In [ ]: