Está en la página 1de 4

Resumen del capítulo: Cambiar

tipos de datos
Cómo leer archivos Excel
Tenemos un método especial llamado read_excel() para leer archivos de Excel. Es
parecido a read_csv() , con la diferencia de que read_excel() necesita dos argumentos:
la string con el nombre del archivo o la ruta del archivo y sheet_name (nombre de la
hoja). Si no hay un argumento sheet_name , el método lee la primera hoja por defecto.

import pandas as pd
df = pd.read_excel('file.xlsx', sheet_name='List1')

Convertir valores de strings en números


Utilizamos un método estándar de pandas para convertir valores de strings en
números: to_numeric() . Convierte los valores de columna en tipo float64 (número de
coma flotante) o int64 (número entero), según el valor entrante.
El método to_numeric() tiene un parámetro errors . Los valores de errors determinan
qué hará to_numeric cuando encuentre un valor no válido:

errors='raise' : Se utiliza por defecto. Se genera una excepción cuando se


encuentra un valor incorrecto, lo que detiene la conversión a números.

errors='coerce' : los valores inválidos se reemplazan por NaN

errors='ignore' : los valores inválidos no cambian.

Para convertir los datos al tipo que buscamos utilizamos el método astype() . Un string
con el nombre del tipo se pasa como argumento.

Trabajar con fechas y horas en pandas


Python tiene un tipo de datos especial que usamos para trabajar con fechas y horas:
datetime.

Resumen del capítulo: Cambiar tipos de datos 1


Para convertir strings en fechas y horas, usamos el método to_datetime(). Los
parámetros del método son la columna que contiene strings y el formato de fecha en un
string.
Establecemos el formato de fecha utilizando un sistema de designación especial:

%d : día del mes (01 a 31)

%m : mes (01 a 12)

%Y : año de cuatro dígitos (por ejemplo, 1994)

%H : hora en formato de 24 horas

%I : hora en formato de 12 horas

%M : minutos (00 a 59)

%S : segundos (00 a 59)

date['column']= pd.to_datetime(date['column'], format='%d.%m.%YZ%H:%M:%S')

Hay varias formas de representar fechas y horas, pero el formato unix time merece
una atención especial. Este formato nos da la cantidad de segundos que han pasado
desde las 00:00:00 del 1° de enero de 1970. Tiempo Unix corresponde al Tiempo
Universal Coordinado, o UTC por sus siglas en inglés.

El método to_datetime() también funciona con el formato de tiempo Unix. El primer


argumento es la columna con tiempos Unix. El segundo argumento es unit ; tiene el
valor 's' y comunica que el tiempo debe convertirse al formato habitual con precisión
al segundo.

A menudo tenemos que estudiar estadísticas por mes, día o año. Para hacerlo,
colocamos el tiempo en la clase DatetimeIndex y le aplicamos el atributo month,* day*,*
o year:

date['column'] = pd.DatetimeIndex(date['column']).month

Manejar los errores con try-except

Resumen del capítulo: Cambiar tipos de datos 2


Si estás descargando datos de múltiples sistemas, prepárate para sorpresas:

Los datos formateados incorrectamente pueden causar problemas cuando se


ejecuta el código: un fallo. Ya tienes un poco de experiencia con esto. Si los
números en el dataset son strings por cualquier motivo, tendrás que usar el método
to_numeric() .

Pueden ocurrir errores hacia el final de un archivo y el código no se ejecuta para


filas con valores incorrectos. Eso significa que perdemos nuestros cálculos para las
filas anteriores sin errores.

A veces los datos cambian. Por ejemplo, una empresa podría empezar a trabajar
con un nuevo socio que envía datos defectuosos para la contabilidad, lo que hace
que el código falle.

Desafortunadamente, es imposible predecir todos los problemas que pueden ocurrir.


Sin embargo, hay una función llamada try-except que utilizamos cuando trabajamos
con datos impredecibles. Colocas el código original en el bloque try, y si hay un
problema con él, se ejecuta el código en el bloque except en su lugar.

try:
# código que podría tener un error
except:
# lo que sucede cuando se descubre el error mencionado

El método merge()
Los datos se almacenan en varias hojas en tablas de Excel. Antes de que puedas usar
todos los datos, debes unir las tablas.

Podemos combinar múltiples tablas usando el método merge() .


Argumentos:

right : el nombre del DataFrame o Serie que estamos uniendo con la tabla de
origen.

on : un campo presente en ambas tablas que se usa para combinarlas.

Resumen del capítulo: Cambiar tipos de datos 3


how : los valores clave que se utilizarán en la tabla resultante. Puede tener el valor
left , donde los valores clave de la tabla de la izquierda se incluyen en el

resultado, o right , donde los valores clave de la tabla de la derecha se incluyen en


el resultado.

data.merge(data2, on='merge_column', how='left')


data.merge(data2, on='merge_column', how='right')

Tablas dinámicas
Las tablas dinámicas son tus mejores amigas cuando se trata de procesar datos
reorganizados o concentrados derivados de tablas enormes, enfocados en aspectos
particulares.

Para preparar tablas dinámicas en pandas, utilizamos el método pivot_table() .

Los argumentos del método:

index : columna o columnas en que se agrupan los datos

columns : la columna con los valores usados para agrupar los datos

values : los valores que queremos ver en la tabla dinámica

aggfunc : la función aplicada a esos valores

data_pivot = data.pivot_table(index=['column1', 'column2'], columns='source',


alues='column_pivot', aggfunc='function')

Resumen del capítulo: Cambiar tipos de datos 4

También podría gustarte