DataFrame Pandas: La Guía Definitiva para Analizar Datos en Python

DataFrame Pandas: La Guía Definitiva para Analizar Datos en Python

El análisis de datos es fundamental en el mundo moderno, y Python se ha convertido en una herramienta indispensable para esta tarea. En el corazón de la potencia analítica de Python se encuentran las dataframes pandas, estructuras de datos bidimensionales que permiten manipular y analizar información de manera eficiente y flexible.

Este artículo te guiará a través de los fundamentos de los dataframes pandas, desde su creación hasta operaciones avanzadas, incluyendo ejemplos concretos para que puedas poner en práctica tus conocimientos.

Introducción a los DataFrames de Pandas

Los dataframes pandas son la piedra angular de la librería Pandas, una de las herramientas más populares para el análisis de datos en Python. Su estructura es similar a una tabla SQL o una hoja de cálculo, con filas y columnas que representan datos organizados. Los DataFrames son mutables, lo que significa que se pueden modificar después de su creación, y sus ejes (filas y columnas) tienen etiquetas que facilitan el acceso y la manipulación de los datos.

Creando DataFrames: Una Variedad de Opciones

La creación de un dataframe pandas es un proceso sencillo gracias a la versatilidad de Pandas. Puedes crear un DataFrame a partir de diversas fuentes de datos, incluyendo listas, diccionarios y archivos. A continuación, se presentan los métodos más comunes:

1. Creando DataFrames a partir de Listas

Puedes crear un dataframe pandas a partir de una sola lista o de una lista de listas. En el caso de una sola lista, cada elemento se convierte en una fila del DataFrame. Para una lista de listas, cada sublista representa una fila, y cada elemento de la sublista corresponde a una columna.

«`python
import pandas as pd

Crear un DataFrame a partir de una sola lista

data = [‘Apple’, ‘Banana’, ‘Orange’]
df = pd.DataFrame(data, columns=[‘Fruit’])
print(df)

Crear un DataFrame a partir de una lista de listas

data = [[‘Apple’, 1], [‘Banana’, 2], [‘Orange’, 3]]
df = pd.DataFrame(data, columns=[‘Fruit’, ‘Quantity’])
print(df)
«`

2. Creando DataFrames a partir de Diccionarios

Los diccionarios también son una forma práctica de crear dataframes pandas. Puedes utilizar diccionarios de ndarray o listas, donde las claves representan los nombres de las columnas y los valores representan los datos.

«`python
import pandas as pd
import numpy as np

Crear un DataFrame a partir de un diccionario de ndarray

data = {‘Fruit’: np.array([‘Apple’, ‘Banana’, ‘Orange’]), ‘Quantity’: np.array([1, 2, 3])}
df = pd.DataFrame(data)
print(df)

Crear un DataFrame a partir de un diccionario de listas

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 2, 3]}
df = pd.DataFrame(data)
print(df)
«`

3. Creando DataFrames a partir de Series

Las Series de Pandas son estructuras de datos unidimensionales, y se pueden usar para crear dataframes pandas mediante un diccionario de Series.

«`python
import pandas as pd

Crear Series

fruit = pd.Series([‘Apple’, ‘Banana’, ‘Orange’], name=’Fruit’)
quantity = pd.Series([1, 2, 3], name=’Quantity’)

LEER:  Java.lang.NullPointerException: Comprender y Evitar este Error Común

Crear un DataFrame a partir de un diccionario de Series

data = {‘Fruit’: fruit, ‘Quantity’: quantity}
df = pd.DataFrame(data)
print(df)
«`

4. Creando DataFrames a partir de Otros DataFrames

Puedes crear un nuevo dataframe pandas a partir de uno existente, seleccionando columnas o filas específicas, o utilizando métodos como copy() para crear una copia independiente.

«`python
import pandas as pd

Crear un DataFrame base

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 2, 3]}
df = pd.DataFrame(data)

Crear un nuevo DataFrame a partir de las primeras dos filas del DataFrame base

newdf = df.iloc[:2]
print(new
df)

Crear una copia independiente del DataFrame base

copydf = df.copy()
print(copy
df)
«`

Explorando el DataFrame: Descubriendo tu Información

Una vez creado el dataframe pandas, es crucial entender sus contenidos y explorar la información que contiene. Pandas ofrece herramientas intuitivas para realizar esta tarea:

1. Inspección General del DataFrame

Puedes obtener información general sobre el DataFrame utilizando los métodos info() y describe(). El método info() muestra el tipo de datos de cada columna, la cantidad de valores no nulos y el uso de memoria. describe() proporciona estadísticas descriptivas como la media, la desviación estándar, los cuantiles y el mínimo y máximo de las columnas numéricas.

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 2, 3]}
df = pd.DataFrame(data)

Mostrar información general del DataFrame

print(df.info())

Mostrar estadísticas descriptivas del DataFrame

print(df.describe())
«`

2. Visualizando el DataFrame

Para una visualización rápida del DataFrame, puedes usar el método head(), que muestra las primeras filas del DataFrame. Para ver las últimas filas, utiliza el método tail().

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 2, 3]}
df = pd.DataFrame(data)

Mostrar las primeras 2 filas del DataFrame

print(df.head(2))

Mostrar las últimas 2 filas del DataFrame

print(df.tail(2))
«`

Manipulando DataFrames: El Arte de la Transformación

Los dataframes pandas son increíblemente flexibles, y ofrecen una gran variedad de operaciones para modificar, filtrar y agregar información. A continuación, te presentamos algunas de las operaciones más comunes:

1. Selección de Columnas

Para seleccionar una columna del dataframe pandas, puedes utilizar su nombre entre corchetes. Si necesitas seleccionar múltiples columnas, puedes usar una lista de nombres.

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 2, 3]}
df = pd.DataFrame(data)

Seleccionar la columna ‘Fruit’

fruitcolumn = df[‘Fruit’]
print(fruit
column)

Seleccionar las columnas ‘Fruit’ y ‘Quantity’

selectedcolumns = df[[‘Fruit’, ‘Quantity’]]
print(selected
columns)
«`

2. Añadir Columnas

Para añadir una nueva columna al dataframe pandas, puedes asignar un valor a una nueva clave utilizando el nombre de la columna. Puedes crear la nueva columna a partir de una lista, una Series de Pandas o una función aplicada a las columnas existentes.

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 2, 3]}
df = pd.DataFrame(data)

LEER:  Convertir Formatos de Fecha en PHP: Guía Completa

Añadir una nueva columna ‘Price’ con valores fijos

df[‘Price’] = [1.0, 1.5, 2.0]
print(df)

Añadir una nueva columna ‘Total’ utilizando una función aplicada a las columnas existentes

df[‘Total’] = df[‘Quantity’] * df[‘Price’]
print(df)
«`

3. Eliminar Columnas

Puedes eliminar columnas de un dataframe pandas utilizando la función del o pop. del elimina la columna de manera permanente, mientras que pop devuelve la columna eliminada.

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 2, 3], ‘Price’: [1.0, 1.5, 2.0]}
df = pd.DataFrame(data)

Eliminar la columna ‘Price’ utilizando ‘del’

del df[‘Price’]
print(df)

Eliminar la columna ‘Quantity’ utilizando ‘pop’

quantitycolumn = df.pop(‘Quantity’)
print(df)
print(quantity
column)
«`

4. Selección de Filas

La selección de filas en un dataframe pandas se puede realizar mediante etiquetas o ubicaciones de índice. Puedes usar etiquetas de fila para seleccionar filas específicas, o ubicaciones de índice numéricas para seleccionar filas por posición.

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 2, 3]}
df = pd.DataFrame(data, index=[‘A’, ‘B’, ‘C’])

Seleccionar la fila con etiqueta ‘B’

rowb = df.loc[‘B’]
print(row
b)

Seleccionar las filas con etiquetas ‘A’ y ‘C’

rowsac = df.loc[[‘A’, ‘C’]]
print(rowsac)

Seleccionar la segunda fila (índice 1)

row1 = df.iloc[1]
print(row
1)
«`

5. Añadir Filas

Puedes añadir nuevas filas a un dataframe pandas utilizando la función append(). La nueva fila se agregará al final del DataFrame.

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’], ‘Quantity’: [1, 2]}
df = pd.DataFrame(data)

Añadir una nueva fila

newrow = {‘Fruit’: ‘Orange’, ‘Quantity’: 3}
df = df.append(new
row, ignore_index=True)
print(df)
«`

6. Eliminar Filas

Para eliminar filas de un dataframe pandas, puedes usar la función drop(). Se puede eliminar una fila utilizando su etiqueta de índice o su posición numérica.

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 2, 3]}
df = pd.DataFrame(data, index=[‘A’, ‘B’, ‘C’])

Eliminar la fila con etiqueta ‘B’

df = df.drop(‘B’)
print(df)

Eliminar la segunda fila (índice 1)

df = df.drop(1)
print(df)
«`

Más allá de lo Básico: Explorando Operaciones Avanzadas

Los dataframes pandas ofrecen un conjunto completo de funciones para análisis y manipulación de datos. A continuación, se presentan algunas operaciones avanzadas que te permitirán realizar análisis más complejos:

1. Filtrado de DataFrames

Puedes filtrar un dataframe pandas para seleccionar las filas que cumplen con una condición específica. Utiliza una expresión booleana para definir la condición y crea una nueva selección con las filas que cumplen la condición.

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 2, 3], ‘Price’: [1.0, 1.5, 2.0]}
df = pd.DataFrame(data)

Filtrar las filas donde ‘Quantity’ es mayor que 1

filtereddf = df[df[‘Quantity’] > 1]
print(filtered
df)
«`

LEER:  bcrypt js: Seguridad de contraseñas en Node.js

2. Agrupación y Resumen de Datos

Para agrupar datos en un dataframe pandas, utiliza el método groupby(). Puedes agrupar por una o más columnas, y luego aplicar funciones de agregación como sum(), mean(), max() o min() para obtener resúmenes de cada grupo.

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’, ‘Apple’, ‘Banana’], ‘Quantity’: [1, 2, 3, 1, 2], ‘Price’: [1.0, 1.5, 2.0, 1.0, 1.5]}
df = pd.DataFrame(data)

Agrupar por ‘Fruit’ y calcular la suma de ‘Quantity’ para cada grupo

groupeddf = df.groupby(‘Fruit’)[‘Quantity’].sum()
print(grouped
df)
«`

3. Unión y Concatenación de DataFrames

Puedes combinar dataframes pandas utilizando las funciones concat() y merge(). concat() une DataFrames a lo largo de un eje, mientras que merge() combina DataFrames basado en una columna común.

«`python
import pandas as pd

Crear dos DataFrames

df1 = pd.DataFrame({‘Fruit’: [‘Apple’, ‘Banana’], ‘Quantity’: [1, 2]})
df2 = pd.DataFrame({‘Fruit’: [‘Orange’, ‘Mango’], ‘Quantity’: [3, 4]})

Concatenar los DataFrames verticalmente

concatenateddf = pd.concat([df1, df2])
print(concatenated
df)

Unir los DataFrames basándose en la columna ‘Fruit’

mergeddf = pd.merge(df1, df2, on=’Fruit’, how=’outer’)
print(merged
df)
«`

4. Ordenación de DataFrames

Para ordenar un dataframe pandas por una o más columnas, utiliza el método sort_values(). Puedes especificar la columna por la que ordenar y el orden (ascendente o descendente).

«`python
import pandas as pd

Crear un DataFrame

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’], ‘Quantity’: [1, 3, 2], ‘Price’: [1.0, 1.5, 2.0]}
df = pd.DataFrame(data)

Ordenar por ‘Quantity’ de forma ascendente

sorteddf = df.sortvalues(‘Quantity’)
print(sorted_df)

Ordenar por ‘Fruit’ de forma descendente

sorteddf = df.sortvalues(‘Fruit’, ascending=False)
print(sorted_df)
«`

5. Trabajando con Valores Nulos

En los conjuntos de datos reales, es común encontrar valores nulos. Pandas ofrece herramientas para manejar estos valores, como el método fillna() para reemplazar los valores nulos con un valor específico, y el método dropna() para eliminar las filas o columnas que contienen valores nulos.

«`python
import pandas as pd

Crear un DataFrame con valores nulos

data = {‘Fruit’: [‘Apple’, ‘Banana’, ‘Orange’, ‘Apple’], ‘Quantity’: [1, 2, None, 1], ‘Price’: [1.0, None, 2.0, 1.0]}
df = pd.DataFrame(data)

Rellenar los valores nulos en la columna ‘Price’ con 0

filleddf = df.fillna(value={‘Price’: 0})
print(filled
df)

Eliminar las filas con valores nulos

droppeddf = df.dropna()
print(dropped
df)
«`

Conclusión: Dominando los DataFrames de Pandas

Los dataframes pandas son una herramienta poderosa para el análisis y la manipulación de datos en Python. Su flexibilidad, eficiencia y capacidad para realizar operaciones complejas hacen de Pandas una herramienta indispensable para cualquier persona que trabaje con datos.

Este artículo ha cubierto los fundamentos de los dataframes pandas, desde su creación hasta operaciones avanzadas. Para profundizar aún más, puedes explorar la documentación oficial de Pandas y experimentar con diferentes ejemplos para consolidar tu comprensión de esta herramienta fundamental para el análisis de datos.