miércoles, 31 de enero de 2018

Receta Python No. 5-13: Iterar Datos de un Objeto Series o DataFrame

1. Problema

Iterar (recorrer) los datos de un objeto Series o DataFrame.

2. Solución

Los objetos Series y DataFrame por definición son iterables. Cada uno de estos objetos se recorre de acuerdo a su forma de estructura (Bernard, 2016):
  • Series: Se itera cada elemento (como si fuera un arreglo).
  • DataFrame: Iteración por columnas.
Adicionalmente, los objetos Panel se recorren por las etiquetas de los elementos.

3. Código Python


Prueba de ejecución:
Recorrer un DataFrame
Figura 1. Recorrer un DataFrame.

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 5-12: Aplicar Funciones a un Conjunto de Datos

1. Problema

Aplicar una función a un conjunto de datos de un DataFrame.

2. Solución

El objeto DataFrame cuenta con los metodos map() y applymap() para aplicar una función a un conjunto de datos (Bernard, 2016).

3. Código Python

Archivo Python aplicar-funcion-datos.py [enlace alternativo]:

Prueba de ejecución:
Aplicar una función a un conjunto de datos
Figura 1. Aplicar una función a un conjunto de datos.

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 5-11: Aplicar Funciones a una Columna o Fila

1. Problema

Aplicar una función a todos los ítems de una fila o columna.

2. Solución

Los objetos DataFrame y Panel cuentan con el método apply(). Este elemento de programa es capaz de aplicar una función a todos los datos de una fila o columna (Bernard, 2016).

3. Código Python

Archivo Python aplicar-funcion-fila-col.py [enlace alternativo]:

Prueba de ejecución:

dos     5.0
tres    8.0
uno     2.0
dtype: float64
x    4.0
y    5.0
z    6.0

dtype: float64

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

martes, 30 de enero de 2018

Receta Python No. 5-10: Ordenar Datos

1. Problema

Ordenar los datos de un objeto Series o DataFrame.

2. Solución

A través de los métodos sort_index() y sort_values() es posible indicar un orden por índice o por valores de la estructura -e.g., DataFrame.

3. Código Python



Prueba de ejecución:
Ordenamiento de datos en un DataFrame
Figura 1. Ordenamiento de datos en un DataFrame.

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 5-9: Resumen Estadístico de Datos

1. Problema

Obtener un resumen estadístico de los datos en un objeto Series o DataFrame.

2. Solución

A través del método describe() de los objetos Series y DataFrame se puede obtener un resumen estadístico de los datos localizados en estas estructuras.

3. Código Python


Prueba de ejecución:
Resumen estadístico de datos
Figura 1. Resumen estadístico de datos.

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 5-8: Obtener los Primeros y Últimos Datos de un DataFrame

1. Problema

Obtener los primeros y últimos datos de un DataFrame.

2. Solución

Tanto el objeto Series como el objeto DataFrame cuentan con los métodos head() y tail() para obtener los primeros y últimos datos de la estructura (Bernard, 2016). Si no se especifica ningún argumento, se obtendrán los primeros o últimos 5 datos.

3. Código Python


Prueba de ejecución:

   impares  pares
0        1      0
1        3      2
2        5      4
   impares  pares
1        3      2
2        5      4
3        7      6

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

lunes, 29 de enero de 2018

Receta Python No. 5-7: Guardar Datos en una Hoja de Cálculo

1. Problema

Guardar los datos contenidos en un objeto DataFrame sobre una hoja de cálculo.

2. Solución

Los objetos DataFrame cuentan con el método de instancia to_excel() para guardar sus datos en un archivo de hoja de cálculo (Bernard, 2016).

3. Código Python


Para guardar el archivo de hoja de cálculo con la extensión XLSX es necesario instalar el módulo openpyxl:

pip install openpyxl

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 5-6: Importar Datos desde una Hoja de Cálculo

1. Problema

Importar datos desde una hoja de cálculo.

2. Solución

Así como es posible importar datos desde un archivo CSV (Receta Python No. 5-4: Importar Datos desde un Archivo CSV), el paquete pandas también soporta la lectura de datos desde un archivo de hoja de cálculo (Bernard, 2016): método read_excel().

3. Código Python



Prueba de ejecución:
Lectura archivo de hoja de cálculo.
Figura 1. Lectura archivo de hoja de cálculo.

Es necesario instalar el paquete xlrd:

pip install xlrd

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.
Receta Python No. 5-4: Importar Datos desde un Archivo CSV (2018). Recuperado desde: https://ortizol.blogspot.com.co/2018/01/receta-python-no-5-4-importar-datos-desde-un-archivo-csv.html


O

Receta Python No. 5-5: Guardar Datos en un Archivo CSV

1. Problema

Guardar datos de usuario o de aplicación en un archivo en formato CSV.

2. Solución

Los objetos Series y DataFrame del paquete pandas cuentan con el metodo to_csv() para guardar los datos actuales en un archivo en formato CSV.

3. Código Python

Archivo Python guardar-csv.py [enlace alternativo]:

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.


O

domingo, 28 de enero de 2018

Receta Python No. 5-4: Importar Datos desde un Archivo CSV

1. Problema

Importar datos almacenados en un archivo en formato CSV (valores separados por coma).

2. Solución

El paquete pandas cuenta con el método read_csv() capaz de importar y parsear (leer) archivos en formato CSV.

3. Código Python

Archivo Python leer-csv.py [enlace alternativo]:


Prueba de ejecución:
Lectura CSV con pandas
Figura 1. Lectura CSV con pandas.

El método read_csv() recibe otros argumentos, por ejemplo, para remover los encabezados provenientes del archivo CSV.

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 5-3: Manipular Datos Tridimensionales

1. Problema

Almacenar y manipular datos en una estructura de datos tridimensionales (i.e., matriz 3D).

2. Solución

El paquete pandas incorpora un tipo de dato conocido como Panel que es capaz de manipular conjunto de datos de tres dimensiones.


En este tipo de estructura cada elemento es un diccionario Python con elementos de tipo DataFrame (Bernard, 2016).

3. Código Python


Prueba de ejecución:

          0         1         2
0  0.978488  0.221327 -0.461317
1  0.452840  0.665206 -2.064873
2 -0.238280 -0.487446  0.785916
          0         1   2
0 -0.775285  0.718118 NaN
1  1.462504  0.051160 NaN
2 -2.531535  0.452499 NaN


En el resultado se puede apreciar que la dimensión del segundo DataFrame -num_aleatorios2-, el contenido de la tercera columna (2) está indicado por NaN; a razón de que no se generaron valores aleatorios para esas ubicaciones.

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 5-2: Manipular Datos Bidimensionales

1. Problema

Almacenar y manipular datos en una estructura de datos bidimensional (i.e., matrices).

2. Solución

El paquete pandas provee una estructura de datos DataFrame para manipular datos en dos dimensiones (Bernard, 2016).


Para crear un objeto de este tipo una fuente posible un diccionario o una lista de diccionarios Python.

3. Código Python


Prueba de ejecución:

   impares  pares
0        1      0
1        3      2
2        5      4
3        7      6

0    1
1    3
2    5
3    7
Name: impares, dtype: int64
7

impares    3
pares      2
Name: 1, dtype: int64

2

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 5-0: Instalación del Paquete pandas

1. Problema

Instalar el paquete/librería pandas desde el repositorio PyPe.

2. Solución

El paquete pandas provee herramientas para el análisis de datos: un campo de crecimiento exponencial en los últimos años. Las utilidades incorporadas permiten procesar datos de forma análoga a los paquetes de R (Bernard, 2016).

3. Código Python

Para instalar pandas basta con ejecutar el siguiente comando desde una consola:

pip install pandas


Nota importante: La ejecución de este comando puede requerir privilegios de administrador.

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 5-1: Manipular Datos Unidimensionales

1. Problema

Almacenar y manipular datos en una estructura de datos unidimensional (i.e., arreglos).

2. Solución

En el paquete pandas para Python se provee el tipo de dato Series, el cual se usa para almacenar datos unidimensionales (Bernard, 2016).


La clase Series puede tomar como argumento una lista estándar de Python, para luego realizar operaciones propias de esta estructura de datos de pandas.

3. Código Python


Prueba de ejecución:

int64

0     6
1     9
2    15
3    21
4    33
dtype: int64


7

4. Literatura & Enlaces




O

sábado, 27 de enero de 2018

Receta Python No. 4-9: Comprimir un Archivo

1. Problema

Comprimir un archivo.

2. Solución

En Python se dispone de diferentes módulos para realizar compresion diferentes formatos:
  • zip,
  • gzip,
  • bzip2, 
  • lzma, 
  • tar
En esta receta se demuestra el uso del formato zip.

3. Código Python

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 4-8: Guardar Datos de Objetos

1. Problema

Guardar datos de objetos en disco para uso futuro.

2. Solución

La librería estándar de Python cuenta con el módulo pickle para guardar/serializar los datos de objetos. Para este propósito el método open() debe invocarse especificando la bandera de indicación de escritura en modo binario: 'wb'. Para la apertura: 'rb'.

3. Código Python



Archivo Python abrir-objeto.py [enlace alternativo]:

Prueba de ejecución:

Asus

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 4-7: Recorrer el Contenido de un Directorio

1. Problema

Recorrer (iterar) el contenido de un directorio (carpeta).

2. Solución

De nuevo, la clase Path (módulo pathlib) presta funcionalidad para explorar -recorrer- el contenido de un directorio.

3. Código Python


Prueba de ejecución:

python-r3.4-recorrer-archivo.py
python-r4.3-manejo-archivo.py
python-r4.4-escribir-xml.py
python-r4.4-leer-xml.py
python-r4.5-crear-directorio.py
python-r4.6-estado-directorio.py
python-r4.7-contenido-directorio.py
SistemasOperativos.xml

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 4-6: Monitorear los Cambios de un Directorio

1. Problema

Monitorear y registrar los cambios sobre un directorio: cambio de un archivo, creación de un nuevo, etc.

2. Solución

A través de la clase Path es posible inspeccionar las propiedades de un directorio o archivo (Bernard, 2016).

3. Código Python


Prueba de ejecución:

1517057929.8523777
[WindowsPath('archivo.csv'), WindowsPath('CatalogoProductos.xml'), WindowsPath('libros.csv'), WindowsPath('literatura'),WindowsPath('python-r3.4-recorrer-archivo.py'), WindowsPath('python-r4.3-manejo-archivo.py'), WindowsPath('python-r4.4-escribir-xml.py'), WindowsPath('python-r4.4-leer-xml.py'), WindowsPath('python-r4.5-crear-directorio.py'), WindowsPath('python-r4.6-estado-directorio.py'), WindowsPath('SistemasOperativos.xml')]

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

viernes, 26 de enero de 2018

Receta Python No. 4-5: Crear un Directorio

1. Problema

Crear un directorio (carpeta) de archivos.

2. Solución

El módulo os provee funcionalidad para el trabajo con directorios, inclusive para su creación de estos.

3. Código Python

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

Receta Python No. 4-4: Leer y Escribir Archivos XML

1. Problema

Leer, procesar y escribir archivos de tipo XML.

2. Solución

Python cuenta con con elementos de programa para representar con una estructura arbórea un documento (archivo) XML.

3. Código Python




Archivo Python leer-xml.py [enlace alternativo]:


Prueba de ejecución:

Nombre
FechaExpiracion
Productos


El siguiente código presenta cómo crear un archivo XML en memoria y luego escribirlo en disco:

Archivo Python escribir-xml.py [enlace alternativo]:

4. Literatura & Enlaces


Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.


O

Receta Python No. 4-3: Leer y Escribir Archivos de Texto

1. Problema

Abrir, leer y escribir sobre archivos de texto.

2. Solución

En Python existen los métodos open(), read() y write() para la manipulación de archivos de texto. Esta tarea se lleva a cabo a través de un objeto descriptor de archivo (Bernard, 2016).

3. Código Python

Archivo Python manejo-archivo.py [enlace alternativo]:

Prueba de ejecución:


Balzac,La comedia humana
Dickens,Oliver Twist
Dostoevsky,Crimen y castigo

Balzac,La comedia humana
Dickens,Oliver Twist
Dostoevsky,Crimen y castigo

Balzac,La comedia humana

Dickens,Oliver Twist

Dostoevsky,Crimen y castigo

El método seek(0) en las líneas 6 y 13 resetea el descriptor del archivo a la primera línea.

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O

jueves, 25 de enero de 2018

Receta Python No. 4-2: Mover Archivos

1. Problema

Mover un archivo de una ubicación a otra.

2. Solución

Mover un archivo es una operación equivalente a renombrar un archivo. En Python existen dos operaciones para este propósito (Bernard, 2016):
  • shutils.move(), y 
  • os.rename()

3. Código Python


En la línea 5 se especifica el nombre del archivo a copiar -archivo.csv-, el directorio destino -dir-, y el argumento copy_function = copy para indicar la función que debe realizar la copia del archivo.


En la línea 8 se usa el método os.rename() para mover el archivo archivo.txt al directorio indicado -dir.

4. Literatura & Enlaces

Bernard J. (2016). Python Recipes Handbook: A Problem-Solution Approach. Canada: Apress.

O