5. Pandas

Pandas es una librería en cierto sentido similar a NumPy. Pero si NumPy únicamente contiene vectores, matrices, tensores ,etc junto con operaciones matemáticas. Con pandas tenemos mas cosas como nombrar a las columnas con un nombre , incluir un índices o generación de gráficas.

Mas información:

Libro de Pandas

Practical Tutorial on Data Manipulation with Numpy and Pandas in Python

12 Amazing Pandas & NumPy Functions

Cleaning Your Data Using Pandas

Pandas Data Wrangling Cheat Sheet 2021

Análisis Exploratorio de Datos (EDA) con pandas_profiling

Error-free import of CSV files using Pandas DataFrame

10 Tricks for Converting Numbers and Strings to Datetime in Pandas

Analyzing Panel Data in Pandas

Be a more efficient data analyst, a comprehensive guide to pandas

Differences Between concat(), merge() and join() with Python

Simple ways to manipulate datetime variables with pandas

Importación

Importar pandas

DataFrames

Crear un DataFrame a partir de la matriz de datos y el nombre de las columnas con DataFrame

La función zip es similar a np.column_stack de numpy pero ha usado zip en vez de column_stack ya que hay datos de tipos string. Si todos los datos hubieran sido números de podría haber usado column_stack

Añadir una nueva fila al DataFrame con append.

Mas información:

Función Pandas DataFrame DataFrame.append()

Acceso a disco

Guardar los datos de un DataFrame

Es importante añadir index=False ya que sino creará en disco una columna extra con el nº de la fila a modo de índice

Cargar los datos des un fichero de texto llamado "datos.csv" cuyo separador es una coma.

Cargar los datos desde una base de datos relacional

Crear un DataFrame desde una base de datos relacional es tan sencillo como crear la conexión con sqlalchemy.create_engine y luego con pandas llamar a read_sql.

Previamente hay que instalar sqlalchemy con:

Información

Información general del DataFrame

Dimensión de los datos (filas y columnas)

Mostrar las primeras filas

Mostrar las últimas filas

Estadística

Estadística descriptiva

Media de una columna

Desviación estándar de una columna

Correlación entre columnas

Acceder a los datos

Lo normal es que queramos acceder a los datos siempre por columnas. Así que explicaremos únicamente esa forma.

Acceder a una columna.

Las tres formas son equivalentes pero fíjate que al usar la función loc hay que indicar que queremos todas las filas para ello usamos el :

Acceder a varias columnas

Acceder a todas las columnas excepto a una concreta (se usa para no acceder a la columna del resultado)

Acceder a todas las columnas

Acceder a una columna por índice

Acceder a la última columna por índice

Acceder a varias columnas por índice

Columnas

Obtener el nombre de todas las columnas

Obtener el nº de columnas

Obtener el nombre de la columna por el Nº de columna

Cambiar el nombre de una columna con rename. Se pasa un diccionario cuya clave es el nombre actual y el valor es el nuevo nombre.

Notar que al indicar inplace=True se hace la modificación en el propio DataFrame y no hace falta asignarlo a otro nuevo DataFrame Lo normal es que la columna a predecir la llamemos target

Reordenar las columnas con reindex

Notar que es necesario asignar el DataFrame a un nuevo DataFrame Lo normal es que la columna a predecir se ponga al final

Añadir la nueva columna velocidad al inicio del DataFrame

Añadir la nueva columna velocidad antes del "precio"

Añadir una columna calculada

Borrar la columna llamada calculada

Filtrado

Filtrar por una condición: Cuyo tipo es "SSD"

Filtrar por dos condiciones: Cuyo tipo es "SSD" y el precio es menor que 100

Lo que retornan estos métodos es un nuevo DataFrame así que se pueden aplicar todos los métodos de los DataFrame.

Valores únicos

Datos inválidos

Vamos ahora a crear un DataFrame con datos inválidos.

Obtener el número de datos a NaN o None de cada columna

Borrar aquellas filas que tiene el valor NaN o None

Gráficas con Seaborn

Con dataframes lo sencillo usar seaborn

Scatter plot por el tipo

KDE

KDE por el tipo

Histograma por tipo

Pair plot