Menu iconMenu icon
Aprendizaje automático con Python

Capítulo 2: Python y bibliotecas esenciales

2.3 Pandas para la Manipulación de Datos

Pandas es una potente biblioteca de manipulación de datos en Python. Proporciona estructuras de datos y funciones necesarias para manipular y analizar datos estructurados. El nombre Pandas se deriva del término "Panel Data", un término econométrico para conjuntos de datos que incluyen observaciones a lo largo de múltiples períodos de tiempo para los mismos individuos.

Pandas se construye sobre NumPy y proporciona dos estructuras de datos clave: Series y DataFrame. Una Serie es un objeto similar a un array unidimensional que puede contener cualquier tipo de dato, y un DataFrame es una tabla de datos bidimensional con filas y columnas.

En esta sección, cubriremos los conceptos básicos de Pandas, incluyendo la creación de DataFrames, la selección de datos, la limpieza de datos y el análisis básico de datos.

2.3.1 Instalación

Antes de comenzar, asegúrate de tener Pandas instalado. Si aún no lo has instalado, puedes hacerlo utilizando pip:

pip install pandas

2.3.2 Importando Pandas

Para utilizar Pandas en tu programa de Python, primero debes importarlo. Es común importar Pandas con el alias pd:

import pandas as pd

2.3.3 Creación de DataFrames

Existen varias formas de crear un DataFrame en Pandas. Una forma es utilizar un diccionario, donde las claves representan los nombres de las columnas y los valores representan los datos. Otra forma es utilizar una lista de diccionarios, donde cada diccionario representa una fila de datos.

Finalmente, también puedes crear un DataFrame a partir de una matriz NumPy 2D, donde cada fila representa una observación y cada columna representa una variable. En este caso, puedes especificar los nombres de las columnas utilizando el parámetro columns.

Como puedes ver, Pandas proporciona varias opciones para crear un DataFrame, lo que lo convierte en una herramienta versátil para el análisis y manipulación de datos.

Ejemplo:

import pandas as pd
import numpy as np

# From a dictionary
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['a', 'b', 'c'],
})
print(df)

# From a list of dictionaries
df = pd.DataFrame([
    {'A': 1, 'B': 'a'},
    {'A': 2, 'B': 'b'},
    {'A': 3, 'B': 'c'},
])
print(df)

# From a 2D NumPy array
array = np.array([[1, 'a'], [2, 'b'], [3, 'c']])
df = pd.DataFrame(array, columns=['A', 'B'])
print(df)

2.3.4 Selección de Datos

Al trabajar con un DataFrame, existen varias formas de seleccionar datos. Los métodos más comunes incluyen seleccionar datos utilizando los nombres de las columnas, las etiquetas de las filas o los números de fila. Además, también puedes filtrar datos especificando condiciones mediante la indexación booleana.

Es importante tener en cuenta que el método que elijas dependerá de la tarea específica en cuestión y de la estructura de tus datos. Además, a menudo es útil combinar varios métodos de selección para extraer eficientemente los datos que necesitas.

Ejemplo:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['a', 'b', 'c'],
})

# Select a column
print(df['A'])

# Select multiple columns
print(df[['A', 'B']])

# Select a row by label
print(df.loc[0])

# Select a row by number
print(df.iloc[0])

# Select a specific value
print(df.loc[0, 'A'])
print(df.iloc[0, 0])

2.3.5 Limpieza de Datos

Pandas es una poderosa herramienta para trabajar con datos. Uno de los muchos beneficios de usar Pandas es que proporciona una amplia gama de funciones que pueden ayudarte a limpiar tus datos de manera rápida y sencilla. Por ejemplo, si tus datos tienen valores faltantes, puedes usar Pandas para llenar esos valores faltantes con una variedad de opciones, como la media, la mediana o la moda de los datos. Además, si necesitas reemplazar ciertos valores en tus datos, Pandas facilita esta tarea al permitirte especificar qué valores deseas reemplazar y con qué deseas reemplazarlos. Estos son solo algunos ejemplos de las muchas formas en que Pandas puede ayudarte a limpiar tus datos y hacerlos más útiles para tu análisis.

Pandas proporciona muchas funciones para la limpieza de datos, como llenar valores faltantes y reemplazar valores.

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan],
    'B': ['a', 'b', 'c'],
})

# Fill missing values
df_filled = df.fillna(0)
print(df_filled)

# Replace values
df_replaced = df.replace(np.nan, 0)
print(df_replaced)

2.3.6 Análisis de Datos Básico

Pandas ofrece muchas funciones para el análisis básico de datos, como calcular la media, la suma, el máximo, el mínimo y más:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
})

# Calculate the mean of a column
print(df['A'].mean())

# Calculate the sum of a column
print(df['A'].sum())

# Calculate the maximum value of a column
print(df['A'].max())

# Calculate the minimum value of a column
print(df['A'].min())

Pandas también ofrece la función describe, que calcula una variedad de estadísticas resumidas sobre una columna:

print(df['A'].describe())

2.3.7 Funciones Avanzadas de Pandas

Agrupación de Datos

Pandas es una poderosa biblioteca para la manipulación de datos en Python. Una de sus funciones más útiles es la función groupby, que facilita la división de un DataFrame en grupos basados en ciertos criterios. Por ejemplo, puedes agrupar un DataFrame según los valores en una columna específica o según el resultado de una función personalizada que definas.

Una vez que hayas creado estos grupos, puedes aplicar una función a cada grupo de forma independiente. Esto es increíblemente útil para realizar cálculos o transformaciones en subconjuntos de tus datos. Por ejemplo, podrías calcular estadísticas resumidas para cada grupo, como el valor promedio o mediano de una columna específica.

Después de aplicar la función a cada grupo, puedes luego combinar los resultados en un nuevo DataFrame. Esto te permite comparar fácilmente los resultados de tus cálculos en diferentes grupos y identificar patrones o tendencias que puedan estar presentes.

En general, la función groupby en Pandas es una herramienta poderosa para el análisis y exploración de datos. Ya sea que estés trabajando con conjuntos de datos pequeños o grandes, te ayudará a extraer rápidamente información de tus datos y tomar decisiones más informadas basadas en esos conocimientos.

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
    'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
    'C': np.random.randn(8),
    'D': np.random.randn(8)
})

# Group by column 'A' and calculate the sum of 'C' and 'D' for each group
grouped = df.groupby('A').sum()
print(grouped)

Combinación de Datos

Pandas es una poderosa herramienta para el análisis de datos que permite a los usuarios manipular y analizar datos de diversas maneras. Una de las características más útiles de Pandas es su capacidad para combinar y fusionar DataFrames.

Además de las funciones mergejoin, y concatenate, Pandas también proporciona varios otros métodos para combinar y manipular datos. Por ejemplo, los usuarios pueden realizar operaciones como filtrar, agrupar y ordenar datos para obtener información y tomar decisiones informadas.

Pandas admite una amplia gama de formatos de datos, lo que facilita trabajar con datos de diferentes fuentes. Con su versatilidad y conjunto robusto de características, Pandas es una herramienta esencial para cualquiera que trabaje con datos en Python.

Ejemplo:

import pandas as pd

df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3'],
    'key': ['K0', 'K1', 'K0', 'K1']
})

df2 = pd.DataFrame({
    'C': ['C0', 'C1'],
    'D': ['D0', 'D1']},
    index=['K0', 'K1']
)

# Merge df1 and df2 on the 'key' column
merged = pd.merge(df1, df2, left_on='key', right_index=True)
print(merged)

Esto concluye nuestra introducción a Pandas. Si bien esta sección solo raspa la superficie de lo que Pandas puede hacer, debería proporcionarte una buena base sobre la que construir. En las próximas secciones, exploraremos otras bibliotecas clave de Python utilizadas en Aprendizaje Automático.

Si deseas obtener una comprensión más profunda de Pandas, te recomendamos nuestro siguiente libro:

2.3 Pandas para la Manipulación de Datos

Pandas es una potente biblioteca de manipulación de datos en Python. Proporciona estructuras de datos y funciones necesarias para manipular y analizar datos estructurados. El nombre Pandas se deriva del término "Panel Data", un término econométrico para conjuntos de datos que incluyen observaciones a lo largo de múltiples períodos de tiempo para los mismos individuos.

Pandas se construye sobre NumPy y proporciona dos estructuras de datos clave: Series y DataFrame. Una Serie es un objeto similar a un array unidimensional que puede contener cualquier tipo de dato, y un DataFrame es una tabla de datos bidimensional con filas y columnas.

En esta sección, cubriremos los conceptos básicos de Pandas, incluyendo la creación de DataFrames, la selección de datos, la limpieza de datos y el análisis básico de datos.

2.3.1 Instalación

Antes de comenzar, asegúrate de tener Pandas instalado. Si aún no lo has instalado, puedes hacerlo utilizando pip:

pip install pandas

2.3.2 Importando Pandas

Para utilizar Pandas en tu programa de Python, primero debes importarlo. Es común importar Pandas con el alias pd:

import pandas as pd

2.3.3 Creación de DataFrames

Existen varias formas de crear un DataFrame en Pandas. Una forma es utilizar un diccionario, donde las claves representan los nombres de las columnas y los valores representan los datos. Otra forma es utilizar una lista de diccionarios, donde cada diccionario representa una fila de datos.

Finalmente, también puedes crear un DataFrame a partir de una matriz NumPy 2D, donde cada fila representa una observación y cada columna representa una variable. En este caso, puedes especificar los nombres de las columnas utilizando el parámetro columns.

Como puedes ver, Pandas proporciona varias opciones para crear un DataFrame, lo que lo convierte en una herramienta versátil para el análisis y manipulación de datos.

Ejemplo:

import pandas as pd
import numpy as np

# From a dictionary
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['a', 'b', 'c'],
})
print(df)

# From a list of dictionaries
df = pd.DataFrame([
    {'A': 1, 'B': 'a'},
    {'A': 2, 'B': 'b'},
    {'A': 3, 'B': 'c'},
])
print(df)

# From a 2D NumPy array
array = np.array([[1, 'a'], [2, 'b'], [3, 'c']])
df = pd.DataFrame(array, columns=['A', 'B'])
print(df)

2.3.4 Selección de Datos

Al trabajar con un DataFrame, existen varias formas de seleccionar datos. Los métodos más comunes incluyen seleccionar datos utilizando los nombres de las columnas, las etiquetas de las filas o los números de fila. Además, también puedes filtrar datos especificando condiciones mediante la indexación booleana.

Es importante tener en cuenta que el método que elijas dependerá de la tarea específica en cuestión y de la estructura de tus datos. Además, a menudo es útil combinar varios métodos de selección para extraer eficientemente los datos que necesitas.

Ejemplo:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['a', 'b', 'c'],
})

# Select a column
print(df['A'])

# Select multiple columns
print(df[['A', 'B']])

# Select a row by label
print(df.loc[0])

# Select a row by number
print(df.iloc[0])

# Select a specific value
print(df.loc[0, 'A'])
print(df.iloc[0, 0])

2.3.5 Limpieza de Datos

Pandas es una poderosa herramienta para trabajar con datos. Uno de los muchos beneficios de usar Pandas es que proporciona una amplia gama de funciones que pueden ayudarte a limpiar tus datos de manera rápida y sencilla. Por ejemplo, si tus datos tienen valores faltantes, puedes usar Pandas para llenar esos valores faltantes con una variedad de opciones, como la media, la mediana o la moda de los datos. Además, si necesitas reemplazar ciertos valores en tus datos, Pandas facilita esta tarea al permitirte especificar qué valores deseas reemplazar y con qué deseas reemplazarlos. Estos son solo algunos ejemplos de las muchas formas en que Pandas puede ayudarte a limpiar tus datos y hacerlos más útiles para tu análisis.

Pandas proporciona muchas funciones para la limpieza de datos, como llenar valores faltantes y reemplazar valores.

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan],
    'B': ['a', 'b', 'c'],
})

# Fill missing values
df_filled = df.fillna(0)
print(df_filled)

# Replace values
df_replaced = df.replace(np.nan, 0)
print(df_replaced)

2.3.6 Análisis de Datos Básico

Pandas ofrece muchas funciones para el análisis básico de datos, como calcular la media, la suma, el máximo, el mínimo y más:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
})

# Calculate the mean of a column
print(df['A'].mean())

# Calculate the sum of a column
print(df['A'].sum())

# Calculate the maximum value of a column
print(df['A'].max())

# Calculate the minimum value of a column
print(df['A'].min())

Pandas también ofrece la función describe, que calcula una variedad de estadísticas resumidas sobre una columna:

print(df['A'].describe())

2.3.7 Funciones Avanzadas de Pandas

Agrupación de Datos

Pandas es una poderosa biblioteca para la manipulación de datos en Python. Una de sus funciones más útiles es la función groupby, que facilita la división de un DataFrame en grupos basados en ciertos criterios. Por ejemplo, puedes agrupar un DataFrame según los valores en una columna específica o según el resultado de una función personalizada que definas.

Una vez que hayas creado estos grupos, puedes aplicar una función a cada grupo de forma independiente. Esto es increíblemente útil para realizar cálculos o transformaciones en subconjuntos de tus datos. Por ejemplo, podrías calcular estadísticas resumidas para cada grupo, como el valor promedio o mediano de una columna específica.

Después de aplicar la función a cada grupo, puedes luego combinar los resultados en un nuevo DataFrame. Esto te permite comparar fácilmente los resultados de tus cálculos en diferentes grupos y identificar patrones o tendencias que puedan estar presentes.

En general, la función groupby en Pandas es una herramienta poderosa para el análisis y exploración de datos. Ya sea que estés trabajando con conjuntos de datos pequeños o grandes, te ayudará a extraer rápidamente información de tus datos y tomar decisiones más informadas basadas en esos conocimientos.

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
    'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
    'C': np.random.randn(8),
    'D': np.random.randn(8)
})

# Group by column 'A' and calculate the sum of 'C' and 'D' for each group
grouped = df.groupby('A').sum()
print(grouped)

Combinación de Datos

Pandas es una poderosa herramienta para el análisis de datos que permite a los usuarios manipular y analizar datos de diversas maneras. Una de las características más útiles de Pandas es su capacidad para combinar y fusionar DataFrames.

Además de las funciones mergejoin, y concatenate, Pandas también proporciona varios otros métodos para combinar y manipular datos. Por ejemplo, los usuarios pueden realizar operaciones como filtrar, agrupar y ordenar datos para obtener información y tomar decisiones informadas.

Pandas admite una amplia gama de formatos de datos, lo que facilita trabajar con datos de diferentes fuentes. Con su versatilidad y conjunto robusto de características, Pandas es una herramienta esencial para cualquiera que trabaje con datos en Python.

Ejemplo:

import pandas as pd

df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3'],
    'key': ['K0', 'K1', 'K0', 'K1']
})

df2 = pd.DataFrame({
    'C': ['C0', 'C1'],
    'D': ['D0', 'D1']},
    index=['K0', 'K1']
)

# Merge df1 and df2 on the 'key' column
merged = pd.merge(df1, df2, left_on='key', right_index=True)
print(merged)

Esto concluye nuestra introducción a Pandas. Si bien esta sección solo raspa la superficie de lo que Pandas puede hacer, debería proporcionarte una buena base sobre la que construir. En las próximas secciones, exploraremos otras bibliotecas clave de Python utilizadas en Aprendizaje Automático.

Si deseas obtener una comprensión más profunda de Pandas, te recomendamos nuestro siguiente libro:

2.3 Pandas para la Manipulación de Datos

Pandas es una potente biblioteca de manipulación de datos en Python. Proporciona estructuras de datos y funciones necesarias para manipular y analizar datos estructurados. El nombre Pandas se deriva del término "Panel Data", un término econométrico para conjuntos de datos que incluyen observaciones a lo largo de múltiples períodos de tiempo para los mismos individuos.

Pandas se construye sobre NumPy y proporciona dos estructuras de datos clave: Series y DataFrame. Una Serie es un objeto similar a un array unidimensional que puede contener cualquier tipo de dato, y un DataFrame es una tabla de datos bidimensional con filas y columnas.

En esta sección, cubriremos los conceptos básicos de Pandas, incluyendo la creación de DataFrames, la selección de datos, la limpieza de datos y el análisis básico de datos.

2.3.1 Instalación

Antes de comenzar, asegúrate de tener Pandas instalado. Si aún no lo has instalado, puedes hacerlo utilizando pip:

pip install pandas

2.3.2 Importando Pandas

Para utilizar Pandas en tu programa de Python, primero debes importarlo. Es común importar Pandas con el alias pd:

import pandas as pd

2.3.3 Creación de DataFrames

Existen varias formas de crear un DataFrame en Pandas. Una forma es utilizar un diccionario, donde las claves representan los nombres de las columnas y los valores representan los datos. Otra forma es utilizar una lista de diccionarios, donde cada diccionario representa una fila de datos.

Finalmente, también puedes crear un DataFrame a partir de una matriz NumPy 2D, donde cada fila representa una observación y cada columna representa una variable. En este caso, puedes especificar los nombres de las columnas utilizando el parámetro columns.

Como puedes ver, Pandas proporciona varias opciones para crear un DataFrame, lo que lo convierte en una herramienta versátil para el análisis y manipulación de datos.

Ejemplo:

import pandas as pd
import numpy as np

# From a dictionary
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['a', 'b', 'c'],
})
print(df)

# From a list of dictionaries
df = pd.DataFrame([
    {'A': 1, 'B': 'a'},
    {'A': 2, 'B': 'b'},
    {'A': 3, 'B': 'c'},
])
print(df)

# From a 2D NumPy array
array = np.array([[1, 'a'], [2, 'b'], [3, 'c']])
df = pd.DataFrame(array, columns=['A', 'B'])
print(df)

2.3.4 Selección de Datos

Al trabajar con un DataFrame, existen varias formas de seleccionar datos. Los métodos más comunes incluyen seleccionar datos utilizando los nombres de las columnas, las etiquetas de las filas o los números de fila. Además, también puedes filtrar datos especificando condiciones mediante la indexación booleana.

Es importante tener en cuenta que el método que elijas dependerá de la tarea específica en cuestión y de la estructura de tus datos. Además, a menudo es útil combinar varios métodos de selección para extraer eficientemente los datos que necesitas.

Ejemplo:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['a', 'b', 'c'],
})

# Select a column
print(df['A'])

# Select multiple columns
print(df[['A', 'B']])

# Select a row by label
print(df.loc[0])

# Select a row by number
print(df.iloc[0])

# Select a specific value
print(df.loc[0, 'A'])
print(df.iloc[0, 0])

2.3.5 Limpieza de Datos

Pandas es una poderosa herramienta para trabajar con datos. Uno de los muchos beneficios de usar Pandas es que proporciona una amplia gama de funciones que pueden ayudarte a limpiar tus datos de manera rápida y sencilla. Por ejemplo, si tus datos tienen valores faltantes, puedes usar Pandas para llenar esos valores faltantes con una variedad de opciones, como la media, la mediana o la moda de los datos. Además, si necesitas reemplazar ciertos valores en tus datos, Pandas facilita esta tarea al permitirte especificar qué valores deseas reemplazar y con qué deseas reemplazarlos. Estos son solo algunos ejemplos de las muchas formas en que Pandas puede ayudarte a limpiar tus datos y hacerlos más útiles para tu análisis.

Pandas proporciona muchas funciones para la limpieza de datos, como llenar valores faltantes y reemplazar valores.

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan],
    'B': ['a', 'b', 'c'],
})

# Fill missing values
df_filled = df.fillna(0)
print(df_filled)

# Replace values
df_replaced = df.replace(np.nan, 0)
print(df_replaced)

2.3.6 Análisis de Datos Básico

Pandas ofrece muchas funciones para el análisis básico de datos, como calcular la media, la suma, el máximo, el mínimo y más:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
})

# Calculate the mean of a column
print(df['A'].mean())

# Calculate the sum of a column
print(df['A'].sum())

# Calculate the maximum value of a column
print(df['A'].max())

# Calculate the minimum value of a column
print(df['A'].min())

Pandas también ofrece la función describe, que calcula una variedad de estadísticas resumidas sobre una columna:

print(df['A'].describe())

2.3.7 Funciones Avanzadas de Pandas

Agrupación de Datos

Pandas es una poderosa biblioteca para la manipulación de datos en Python. Una de sus funciones más útiles es la función groupby, que facilita la división de un DataFrame en grupos basados en ciertos criterios. Por ejemplo, puedes agrupar un DataFrame según los valores en una columna específica o según el resultado de una función personalizada que definas.

Una vez que hayas creado estos grupos, puedes aplicar una función a cada grupo de forma independiente. Esto es increíblemente útil para realizar cálculos o transformaciones en subconjuntos de tus datos. Por ejemplo, podrías calcular estadísticas resumidas para cada grupo, como el valor promedio o mediano de una columna específica.

Después de aplicar la función a cada grupo, puedes luego combinar los resultados en un nuevo DataFrame. Esto te permite comparar fácilmente los resultados de tus cálculos en diferentes grupos y identificar patrones o tendencias que puedan estar presentes.

En general, la función groupby en Pandas es una herramienta poderosa para el análisis y exploración de datos. Ya sea que estés trabajando con conjuntos de datos pequeños o grandes, te ayudará a extraer rápidamente información de tus datos y tomar decisiones más informadas basadas en esos conocimientos.

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
    'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
    'C': np.random.randn(8),
    'D': np.random.randn(8)
})

# Group by column 'A' and calculate the sum of 'C' and 'D' for each group
grouped = df.groupby('A').sum()
print(grouped)

Combinación de Datos

Pandas es una poderosa herramienta para el análisis de datos que permite a los usuarios manipular y analizar datos de diversas maneras. Una de las características más útiles de Pandas es su capacidad para combinar y fusionar DataFrames.

Además de las funciones mergejoin, y concatenate, Pandas también proporciona varios otros métodos para combinar y manipular datos. Por ejemplo, los usuarios pueden realizar operaciones como filtrar, agrupar y ordenar datos para obtener información y tomar decisiones informadas.

Pandas admite una amplia gama de formatos de datos, lo que facilita trabajar con datos de diferentes fuentes. Con su versatilidad y conjunto robusto de características, Pandas es una herramienta esencial para cualquiera que trabaje con datos en Python.

Ejemplo:

import pandas as pd

df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3'],
    'key': ['K0', 'K1', 'K0', 'K1']
})

df2 = pd.DataFrame({
    'C': ['C0', 'C1'],
    'D': ['D0', 'D1']},
    index=['K0', 'K1']
)

# Merge df1 and df2 on the 'key' column
merged = pd.merge(df1, df2, left_on='key', right_index=True)
print(merged)

Esto concluye nuestra introducción a Pandas. Si bien esta sección solo raspa la superficie de lo que Pandas puede hacer, debería proporcionarte una buena base sobre la que construir. En las próximas secciones, exploraremos otras bibliotecas clave de Python utilizadas en Aprendizaje Automático.

Si deseas obtener una comprensión más profunda de Pandas, te recomendamos nuestro siguiente libro:

2.3 Pandas para la Manipulación de Datos

Pandas es una potente biblioteca de manipulación de datos en Python. Proporciona estructuras de datos y funciones necesarias para manipular y analizar datos estructurados. El nombre Pandas se deriva del término "Panel Data", un término econométrico para conjuntos de datos que incluyen observaciones a lo largo de múltiples períodos de tiempo para los mismos individuos.

Pandas se construye sobre NumPy y proporciona dos estructuras de datos clave: Series y DataFrame. Una Serie es un objeto similar a un array unidimensional que puede contener cualquier tipo de dato, y un DataFrame es una tabla de datos bidimensional con filas y columnas.

En esta sección, cubriremos los conceptos básicos de Pandas, incluyendo la creación de DataFrames, la selección de datos, la limpieza de datos y el análisis básico de datos.

2.3.1 Instalación

Antes de comenzar, asegúrate de tener Pandas instalado. Si aún no lo has instalado, puedes hacerlo utilizando pip:

pip install pandas

2.3.2 Importando Pandas

Para utilizar Pandas en tu programa de Python, primero debes importarlo. Es común importar Pandas con el alias pd:

import pandas as pd

2.3.3 Creación de DataFrames

Existen varias formas de crear un DataFrame en Pandas. Una forma es utilizar un diccionario, donde las claves representan los nombres de las columnas y los valores representan los datos. Otra forma es utilizar una lista de diccionarios, donde cada diccionario representa una fila de datos.

Finalmente, también puedes crear un DataFrame a partir de una matriz NumPy 2D, donde cada fila representa una observación y cada columna representa una variable. En este caso, puedes especificar los nombres de las columnas utilizando el parámetro columns.

Como puedes ver, Pandas proporciona varias opciones para crear un DataFrame, lo que lo convierte en una herramienta versátil para el análisis y manipulación de datos.

Ejemplo:

import pandas as pd
import numpy as np

# From a dictionary
df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['a', 'b', 'c'],
})
print(df)

# From a list of dictionaries
df = pd.DataFrame([
    {'A': 1, 'B': 'a'},
    {'A': 2, 'B': 'b'},
    {'A': 3, 'B': 'c'},
])
print(df)

# From a 2D NumPy array
array = np.array([[1, 'a'], [2, 'b'], [3, 'c']])
df = pd.DataFrame(array, columns=['A', 'B'])
print(df)

2.3.4 Selección de Datos

Al trabajar con un DataFrame, existen varias formas de seleccionar datos. Los métodos más comunes incluyen seleccionar datos utilizando los nombres de las columnas, las etiquetas de las filas o los números de fila. Además, también puedes filtrar datos especificando condiciones mediante la indexación booleana.

Es importante tener en cuenta que el método que elijas dependerá de la tarea específica en cuestión y de la estructura de tus datos. Además, a menudo es útil combinar varios métodos de selección para extraer eficientemente los datos que necesitas.

Ejemplo:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': ['a', 'b', 'c'],
})

# Select a column
print(df['A'])

# Select multiple columns
print(df[['A', 'B']])

# Select a row by label
print(df.loc[0])

# Select a row by number
print(df.iloc[0])

# Select a specific value
print(df.loc[0, 'A'])
print(df.iloc[0, 0])

2.3.5 Limpieza de Datos

Pandas es una poderosa herramienta para trabajar con datos. Uno de los muchos beneficios de usar Pandas es que proporciona una amplia gama de funciones que pueden ayudarte a limpiar tus datos de manera rápida y sencilla. Por ejemplo, si tus datos tienen valores faltantes, puedes usar Pandas para llenar esos valores faltantes con una variedad de opciones, como la media, la mediana o la moda de los datos. Además, si necesitas reemplazar ciertos valores en tus datos, Pandas facilita esta tarea al permitirte especificar qué valores deseas reemplazar y con qué deseas reemplazarlos. Estos son solo algunos ejemplos de las muchas formas en que Pandas puede ayudarte a limpiar tus datos y hacerlos más útiles para tu análisis.

Pandas proporciona muchas funciones para la limpieza de datos, como llenar valores faltantes y reemplazar valores.

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': [1, 2, np.nan],
    'B': ['a', 'b', 'c'],
})

# Fill missing values
df_filled = df.fillna(0)
print(df_filled)

# Replace values
df_replaced = df.replace(np.nan, 0)
print(df_replaced)

2.3.6 Análisis de Datos Básico

Pandas ofrece muchas funciones para el análisis básico de datos, como calcular la media, la suma, el máximo, el mínimo y más:

import pandas as pd

df = pd.DataFrame({
    'A': [1, 2, 3],
    'B': [4, 5, 6],
})

# Calculate the mean of a column
print(df['A'].mean())

# Calculate the sum of a column
print(df['A'].sum())

# Calculate the maximum value of a column
print(df['A'].max())

# Calculate the minimum value of a column
print(df['A'].min())

Pandas también ofrece la función describe, que calcula una variedad de estadísticas resumidas sobre una columna:

print(df['A'].describe())

2.3.7 Funciones Avanzadas de Pandas

Agrupación de Datos

Pandas es una poderosa biblioteca para la manipulación de datos en Python. Una de sus funciones más útiles es la función groupby, que facilita la división de un DataFrame en grupos basados en ciertos criterios. Por ejemplo, puedes agrupar un DataFrame según los valores en una columna específica o según el resultado de una función personalizada que definas.

Una vez que hayas creado estos grupos, puedes aplicar una función a cada grupo de forma independiente. Esto es increíblemente útil para realizar cálculos o transformaciones en subconjuntos de tus datos. Por ejemplo, podrías calcular estadísticas resumidas para cada grupo, como el valor promedio o mediano de una columna específica.

Después de aplicar la función a cada grupo, puedes luego combinar los resultados en un nuevo DataFrame. Esto te permite comparar fácilmente los resultados de tus cálculos en diferentes grupos y identificar patrones o tendencias que puedan estar presentes.

En general, la función groupby en Pandas es una herramienta poderosa para el análisis y exploración de datos. Ya sea que estés trabajando con conjuntos de datos pequeños o grandes, te ayudará a extraer rápidamente información de tus datos y tomar decisiones más informadas basadas en esos conocimientos.

Ejemplo:

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
    'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
    'C': np.random.randn(8),
    'D': np.random.randn(8)
})

# Group by column 'A' and calculate the sum of 'C' and 'D' for each group
grouped = df.groupby('A').sum()
print(grouped)

Combinación de Datos

Pandas es una poderosa herramienta para el análisis de datos que permite a los usuarios manipular y analizar datos de diversas maneras. Una de las características más útiles de Pandas es su capacidad para combinar y fusionar DataFrames.

Además de las funciones mergejoin, y concatenate, Pandas también proporciona varios otros métodos para combinar y manipular datos. Por ejemplo, los usuarios pueden realizar operaciones como filtrar, agrupar y ordenar datos para obtener información y tomar decisiones informadas.

Pandas admite una amplia gama de formatos de datos, lo que facilita trabajar con datos de diferentes fuentes. Con su versatilidad y conjunto robusto de características, Pandas es una herramienta esencial para cualquiera que trabaje con datos en Python.

Ejemplo:

import pandas as pd

df1 = pd.DataFrame({
    'A': ['A0', 'A1', 'A2', 'A3'],
    'B': ['B0', 'B1', 'B2', 'B3'],
    'key': ['K0', 'K1', 'K0', 'K1']
})

df2 = pd.DataFrame({
    'C': ['C0', 'C1'],
    'D': ['D0', 'D1']},
    index=['K0', 'K1']
)

# Merge df1 and df2 on the 'key' column
merged = pd.merge(df1, df2, left_on='key', right_index=True)
print(merged)

Esto concluye nuestra introducción a Pandas. Si bien esta sección solo raspa la superficie de lo que Pandas puede hacer, debería proporcionarte una buena base sobre la que construir. En las próximas secciones, exploraremos otras bibliotecas clave de Python utilizadas en Aprendizaje Automático.

Si deseas obtener una comprensión más profunda de Pandas, te recomendamos nuestro siguiente libro: