Módulos de Python - Numpy - Pandas
Módulos de Python - Numpy - Pandas
Cuando se importen módulos de esta manera hay que tener cuidado de que no
haya coincidencias en los nombres de funciones, variables u otros objetos.
>>> import calendar
>>> print(calendar.month(2019, 4))
April 2019
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
>>> from math import *
>>> cos(pi)
-1.0
Acceder a los distintos componentes de una fecha (año, mes, día, hora,
minutos, segundos y microsegundos).
Convertir cadenas con formato de fecha en los
tipos date, time o datetime.
Convertir fechas de los tipos date, time o datetime en cadenas
formateadas de acuerdo a diferentes formatos de fechas.
Hacer aritmética de fechas (sumar o restar fechas).
Comparar fechas.
Aritmética de fechas
La librería Numpy
NumPy es una librería de Python especializada en el cálculo numérico y el
análisis de datos, especialmente para un gran volumen de datos.
Incorpora una nueva clase de objetos llamados arrays que permite representar
colecciones de datos de un mismo tipo en varias dimensiones, y funciones muy
eficientes para su manipulación.
[[ 7 8 9]
[10 11 12]]]
Otras funciones útiles que permiten generar arrays son:
>>> print(np.zeros(3,2))
[[0. 0. 0.]
[0. 0. 0.]]
>>> print(np.idendity(3))
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
>>> print(np.arange(1, 10, 2))
[1 3 5 7 9]
>>> print(np.linspace(0, 10, 5))
[ 0. 2.5 5. 7.5 10. ]
Atributos de un array
Existen varios atributos y funciones que describen las características de un
array.
a[condicion] : Devuelve una lista con los elementos del array a que
cumplen la condición condicion.
>>> a = np.array([[1, 2, 3], [4, 5, 6]])
>>> print(a[(a % 2 == 0)])
[2 4 6]
>>> print(a[(a % 2 == 0) & (a > 2)])
[2 4]
Operaciones matemáticas con arrays
Existen dos formas de realizar operaciones matemáticas con arrays: a nivel de
elemento y a nivel de array.
Álgebra matricial
Numpy incorpora funciones para realizar las principales operaciones
algebraicas con vectores y matrices. La mayoría de los métodos algebráicos se
agrupan en el submódulo linalg.
Módulo de un vector
Para calcular el módulo de un vector se utiliza el siguiente método:
Matriz traspuesta
Matriz inversa
Creación de series
Creación de una serie a partir de una lista
Un DataFrame contiene dos índices, uno para las filas y otro para las
columnas, y se puede acceder a sus elementos mediante los nombres de las
filas y las columnas.
Los valores asociados a las claves del diccionario deben ser listas del mismo
tamaño.
>>> import pandas as pd
>>> datos = {'nombre':['María', 'Luis', 'Carmen', 'Antonio'],
... 'edad':[18, 22, 20, 21],
... 'grado':['Economía', 'Medicina', 'Arquitectura', 'Economía'],
... 'correo':['[email protected]', '[email protected]', '[email protected]',
'[email protected]']
... }
>>> df = pd.DataFrame(datos)
>>> print(df)
nombre edad grado correo
0 María 18 Economía [email protected]
1 Luis 22 Medicina [email protected]
2 Carmen 20 Arquitectura [email protected]
3 Antonio 21 Economía [email protected]
Para crear un DataFrame a partir de una lista de listas con los datos de las
columnas se utiliza el siguiente método:
DataFrame(data=listas, index=filas, columns=columnas,
dtype=tipos) : Devuelve un objeto del tipo DataFrame cuyas columnas
son los valores de las listas de la lista listas, los nombres de filas
indicados en la lista filas, los nombres de columnas indicados en la
lista columnas y los tipos indicados en la lista tipos. La lista filas, tiene
que tener el mismo tamaño que la lista listas mientras que las
listas columnas y tipos tienen que tener el mismo tamaño que las listas
anidadas en listas. Si no se pasa la lista de filas o de columnas se
utilizan enteros empezando en 0. Si no se pasa la lista de tipos, se infiere.
Si las listas anidadas en listas no tienen el mismo tamaño, las listas menores
se rellenan con valores NaN.
>>> import pandas as pd
>>> df = pd.DataFrame([['María', 18], ['Luis', 22], ['Carmen', 20]],
columns=['Nombre', 'Edad'])
>>> print(df)
Nombre Edad
0 María 18
1 Luis 22
2 Carmen 20
Para crear un DataFrame a partir de una lista de diccionarios con los datos de
las filas, se utiliza el siguiente método:
DataFrame(data=diccionarios, index=filas, columns=columnas,
dtype=tipos) : Devuelve un objeto del tipo DataFrame cuyas filas
contienen los valores de los diccionarios de la lista diccionarios, los
nombres de filas indicados en la lista filas, los nombres de columnas
indicados en la lista columnas y los tipos indicados en la lista tipos. La
lista filas tiene que tener el mismo tamaño que la lista lista. Si no se
pasa la lista de filas se utilizan enteros empezando en 0. Si no se pasa la
lista de columnas se utilizan las claves de los diccionarios. Si no se pasa
la lista de tipos, se infiere.
Si los diccionarios no tienen las mismas claves, las claves que no aparecen en
el diccionario se rellenan con valores NaN.
>>> import pandas as pd
>>> df = pd.DataFrame([{'Nombre':'María', 'Edad':18}, {'Nombre':'Luis',
'Edad':22}, {'Nombre':'Carmen'}])
>>> print(df)
0 María 18.0
1 Luis 22.0
2 Carmen NaN
Exportación de ficheros
También existen funciones para exportar un DataFrame a un fichero con
diferentes formatos.
df.to_csv(fichero.csv, sep=separador, columns=booleano,
index=booleano) : Exporta el DataFrame df al fichero fichero.csv en
formato CSV usando como separador de los datos la cadena separador.
Si se pasa True al parámetro columns se exporta también la fila con los
nombres de columnas y si se pasa True al parámetro index se exporta
también la columna con los nombres de las filas.
df.to_excel(fichero.xlsx, sheet_name = hoja, columns=booleano,
index=booleano) : Exporta el DataFrame df a la hoja de cálculo hoja del
fichero fichero.xlsx en formato Excel. Si se pasa True al
parámetro columns se exporta también la fila con los nombres de
columnas y si se pasa True al parámetro index se exporta también la
columna con los nombres de las filas.
Atributos de un DataFrame
Existen varias propiedades o métodos para ver las características de un
DataFrame.
Reindexar un DataFrame
Para reordenar los índices de las filas y las columnas de un DataFrame, así
como añadir o eliminar índices, se utiliza el siguiente método:
Puesto que los datos de una misma columna de un DataFrame son del mismo
tipo, es fácil aplicar la misma operación a todos los elementos de la columna.
>>> import pandas as pd
>>> df = pd.read_csv(
'https://raw.githubusercontent.com/asalber/manual-
python/master/datos/colesterol.csv')
>>> print(df['altura']*100)
0 179
1 173
2 181
...
>>> print(df['sexo']=='M')
0 False
1 True
2 False
...
Al igual que para las series, los siguientes métodos permiten resumir la
información de un DataFrame por columnas:
Una operación bastante común con un DataFrame es obtener las filas que
cumplen una determinada condición.
Ordenar un DataFrame
Agrupación de un DataFrame
En muchas aplicaciones es útil agrupar los datos de un DataFrame de acuerdo
a los valores de una o varias columnas (categorías), como por ejemplo el sexo
o el país.
Dividir un DataFrame en grupos
Una función de agregación toma como argumento una lista y devuelve una
único valor. Algunas de las funciones de agregación más comunes son:
Reestructurar un DataFrame
A menudo la disposición de los datos en un DataFrame no es la adecuada para
su tratamiento y es necesario reestructurar el DataFrame. Los datos que
contiene un DataFrame pueden organizarse en dos formatos: ancho y largo.
Concatenación de DataFrames
Concatenación de filas. Las filas de los DataFrames se concatenan
unas a continuación de las otras para formar el nuevo DataFrame. Para
ello es necesario que los DataFrames que se combinen tengan el mismo
índice de columnas.
Mezcla de DataFrames