Imagen destacada del tutorial: Manipulación de Datos con Pandas: Guía Completa para Ciencia de Datos
Análisis de Datos con Pandas

Manipulación de Datos con Pandas: Guía Completa para Ciencia de Datos

José Elías Romero Guanipa
02 Sep 2025

Aprende a manipular datos en Pandas. Guía paso a paso para principiantes en ciencia de datos con ejemplos prácticos en Python.

pandas python ciencia de datos manipulacion de datos dataframe +1 más

¡Da tus primeros pasos en la manipulación de datos con Pandas! En este tutorial completo te guiaré paso a paso para que aprendas a seleccionar, ordenar, agrupar y transformar datos en Pandas, preparándolos para análisis avanzados.

Objetivo: Aprender a usar las funciones de Pandas para manipular datos, incluyendo selección, ordenamiento, agregación y transformación.

Paso 1: Instalación e Importación

Instala pandas si aún no lo tienes. Abre tu terminal o prompt de comandos y escribe:

pip install pandas numpy

Una vez instalado, puedes importarlo en tu código Python:

import pandas as pd
import numpy as np

Paso 2: Crear un DataFrame de Ejemplo

Para practicar, crearemos un DataFrame de ejemplo:

data = {
    'Nombre': ['Ana', 'Luis', 'Carmen', 'Pedro', 'Sofía', 'Jorge'],
    'Edad': [25, 32, 28, 45, 23, 31],
    'Ciudad': ['Madrid', 'Barcelona', 'Madrid', 'Valencia', 'Barcelona', 'Sevilla'],
    'Salario': [35000, 42000, 38000, 55000, 31000, 48000],
    'Departamento': ['Ventas', 'TI', 'Ventas', 'RH', 'TI', 'Ventas']
}

df = pd.DataFrame(data)
print("DataFrame original:")
print(df)

Paso 3: Selección de Datos

Seleccionar Columnas

# Una columna (devuelve Series)
nombres = df['Nombre']

# Múltiples columnas (devuelve DataFrame)
sub_df = df[['Nombre', 'Edad', 'Salario']]

Seleccionar Filas

# Por índice
fila_2 = df.iloc[2]  # Tercera fila (índice 2)

# Por rango
primeras_3 = df.iloc[0:3]  # Primeras tres filas

# Por condición
madrid = df[df['Ciudad'] == 'Madrid']
salarios_altos = df[df['Salario'] > 40000]

Paso 4: Ordenamiento de Datos

# Ordenar por una columna
df_ordenado = df.sort_values('Salario')  # Ascendente
df_ordenado_desc = df.sort_values('Salario', ascending=False)  # Descendente

# Ordenar por múltiples columnas
df_ordenado_multi = df.sort_values(['Departamento', 'Salario'], ascending=[True, False])

Paso 5: Agregación de Datos

GroupBy

# Agrupar por departamento y calcular promedios
grupo_depto = df.groupby('Departamento')['Salario'].mean()
print("\nSalario promedio por departamento:")
print(grupo_depto)

# Múltiples operaciones de agregación
resumen = df.groupby('Departamento').agg({
    'Salario': ['mean', 'min', 'max', 'count'],
    'Edad': 'mean'
})
print("\nResumen por departamento:")
print(resumen)

Tablas Pivote

# Crear una tabla pivote
pivot = pd.pivot_table(df,
                       values='Salario',
                       index='Departamento',
                       columns='Ciudad',
                       aggfunc='mean',
                       fill_value=0)
print("\nTabla pivote: Salario promedio por Depto y Ciudad")
print(pivot)

Paso 6: Transformación de Datos

Crear Nuevas Columnas

# Basada en operaciones matemáticas
df['Salario_Anual_Bruto'] = df['Salario'] * 1.05  # Añadir 5% de bonus

# Basada en condiciones
df['Rango_Edad'] = np.where(df['Edad'] < 30, 'Joven', 'Senior')

# Usando funciones
def categorizar_salario(salario):
    if salario < 35000:
        return 'Bajo'
    elif salario < 45000:
        return 'Medio'
    else:
        return 'Alto'

df['Categoria_Salario'] = df['Salario'].apply(categorizar_salario)

Transformaciones con GroupBy

# Normalizar salarios dentro de cada departamento
df['Salario_Normalizado'] = df.groupby('Departamento')['Salario'].transform(
    lambda x: (x - x.mean()) / x.std()
)

Paso 7: Combinación de DataFrames

Concatenación

# Crear otro DataFrame
nuevos_empleados = pd.DataFrame({
    'Nombre': ['Elena', 'Diego'],
    'Edad': [29, 35],
    'Ciudad': ['Bilbao', 'Málaga'],
    'Salario': [39000, 51000],
    'Departamento': ['TI', 'Ventas']
})

# Concatenar verticalmente
df_completo = pd.concat([df, nuevos_empleados], ignore_index=True)

Uniones (MERGE)

# Crear DataFrame de departamentos
deptos = pd.DataFrame({
    'Departamento': ['Ventas', 'TI', 'RH'],
    'Jefe': ['Carlos', 'Ana', 'Marta'],
    'Presupuesto': [100000, 150000, 80000]
})

# Unir con el DataFrame principal
df_con_deptos = pd.merge(df, deptos, on='Departamento', how='left')

Paso 8: Manejo de Fechas y Tiempos

# Convertir a datetime
df_fechas = pd.DataFrame({
    'nombre': ['A', 'B', 'C'],
    'fecha': ['2023-01-15', '2023-02-20', '2023-03-10']
})

df_fechas['fecha'] = pd.to_datetime(df_fechas['fecha'])

# Extraer componentes
df_fechas['año'] = df_fechas['fecha'].dt.year
df_fechas['mes'] = df_fechas['fecha'].dt.month
df_fechas['dia_semana'] = df_fechas['fecha'].dt.day_name()

Paso 9: Operaciones con Texto

# Operaciones comunes en columnas de texto
df['Nombre_Mayusculas'] = df['Nombre'].str.upper()
df['Inicial'] = df['Nombre'].str[0]
df['Contiene_a'] = df['Nombre'].str.contains('a', case=False)

# Dividir texto
df[['Primer_Nombre', 'Apellido']] = df['Nombre'].str.split(' ', expand=True, n=1)

Paso 10: Reestructurar Datos

De Wide a Long Format con melt()

# Datos en formato ancho
df_wide = pd.DataFrame({
    'Nombre': ['Ana', 'Luis'],
    'Salario_2022': [35000, 42000],
    'Salario_2023': [37000, 44000]
})

# Derretir el DataFrame
df_long = pd.melt(df_wide,
                  id_vars=['Nombre'],
                  value_vars=['Salario_2022', 'Salario_2023'],
                  var_name='Año',
                  value_name='Salario')

Paso 11: Ejemplo Práctico Completo

# Análisis completo: Resumen salarial por ciudad y departamento
resumen_completo = (df
 .groupby(['Ciudad', 'Departamento'])
 .agg(Empleados=('Nombre', 'count'),
      Salario_Promedio=('Salario', 'mean'),
      Edad_Promedio=('Edad', 'mean'))
 .round(2)
 .sort_values('Salario_Promedio', ascending=False)
 .reset_index()
)

print("\nResumen completo por ciudad y departamento:")
print(resumen_completo)

Conclusión

¡Felicidades! Ahora dominas los fundamentos para manipular datos en Pandas. Practica con tus propios datasets y explora más funciones avanzadas. Si tienes preguntas, déjalas en los comentarios.

Para más tutoriales sobre ciencia de datos y Python, visita nuestra sección de tutoriales.


¡Con estos conocimientos ya puedes manipular datos en Python usando Pandas!


💡 Tip Importante

🔧 Mejores Prácticas para Manipulación de Datos

Para manipular datos de manera eficiente y efectiva, considera estos consejos:

  • Usa el método encadenado para operaciones fluidas:

    resultado = (df
               .query('Salario > 35000')
               .groupby('Departamento')
               .agg({'Salario': 'mean'})
               .sort_values('Salario', ascending=False)
               .head(3))
  • Emplea query() para filtros más legibles:

    df_filtrado = df.query('Edad >= 30 and Salario < 50000')
  • Crea funciones de agregación personalizadas:

    def rango_salarial(series):
      return series.max() - series.min()
    
    df.groupby('Departamento')['Salario'].agg(rango_salarial)
  • Aplica transformaciones a múltiples columnas:

    df[['Edad', 'Salario']] = df[['Edad', 'Salario']].apply(lambda x: x * 1.1)

📚 Documentación: Revisa la documentación completa de pandas para manipulación de datos aquí

¡Estos consejos te ayudarán a manipular datos como un experto!

Comentarios

Comentarios

Inicia sesión para dejar un comentario.

No hay comentarios aún

Sé el primero en comentar este tutorial.

Tutoriales Relacionados

Descubre más tutoriales relacionados que podrían ser de tu interés

Imagen destacada del tutorial relacionado: Limpieza y Depuración de Datos con Pandas: Guía Completa para Ciencia de Datos
Análisis de Datos con Pandas

Limpieza y Depuración de Datos con Pandas: Guía Completa para Ciencia de Datos

Aprende a limpiar y depurar datos en Pandas. Guía paso a paso para principiantes en ciencia de datos con ejemplos prácticos en Python.

José Elías Romero Guanipa
02 Sep 2025
Imagen destacada del tutorial relacionado: Análisis Estadístico con Pandas: Guía Completa para Ciencia de Datos
Análisis de Datos con Pandas

Análisis Estadístico con Pandas: Guía Completa para Ciencia de Datos

Aprende análisis estadístico con Pandas. Guía paso a paso para principiantes en ciencia de datos con ejemplos prácticos en Python.

José Elías Romero Guanipa
01 Sep 2025
Imagen destacada del tutorial relacionado: Cómo Leer y Manipular Archivos en Pandas: Guía Completa para Ciencia de Datos
Análisis de Datos con Pandas

Cómo Leer y Manipular Archivos en Pandas: Guía Completa para Ciencia de Datos

Aprende a leer archivos CSV, Excel, JSON y más en Pandas. Guía paso a paso para principiantes en ciencia de datos con ejemplos prácticos en Python.

José Elías Romero Guanipa
01 Sep 2025
Imagen destacada del tutorial relacionado: Visualización de Datos con Matplotlib, Seaborn y Pandas: Guía Completa para Ciencia de Datos
Análisis de Datos con Pandas

Visualización de Datos con Matplotlib, Seaborn y Pandas: Guía Completa para Ciencia de Datos

Aprende a visualizar datos en Pandas con Matplotlib y Seaborn. Guía paso a paso para principiantes en ciencia de datos con ejemplos prácticos en Python.

José Elías Romero Guanipa
01 Sep 2025
Foto de perfil del autor José Elías Romero Guanipa
José Elías Romero Guanipa
Autor

🌟 Nube de Etiquetas

Descubre temas populares en nuestros tutoriales

python
python 12 tutoriales
ciencia de datos
ciencia de datos 8 tutoriales
pandas
pandas 5 tutoriales
bases de datos
bases de datos 4 tutoriales
dataframe
dataframe 4 tutoriales
poo
poo 3 tutoriales
machine learning
machine learning 3 tutoriales
rendimiento
rendimiento 3 tutoriales
mysql
mysql 3 tutoriales
postgresql
postgresql 3 tutoriales
analisis de datos
analisis de datos 3 tutoriales
algoritmos
algoritmos 2 tutoriales
estructuras datos
estructuras datos 2 tutoriales
principiante
principiante 2 tutoriales
patrones diseño
patrones diseño 2 tutoriales
arquitectura software
arquitectura software 2 tutoriales
solid
solid 2 tutoriales
principios
principios 2 tutoriales
colaboracion
colaboracion 2 tutoriales
sql
sql 2 tutoriales
sqlite
sqlite 2 tutoriales
consultas
consultas 2 tutoriales
sql geoespacial
sql geoespacial 2 tutoriales
postgis
postgis 2 tutoriales
location intelligence
location intelligence 2 tutoriales

Las etiquetas más grandes y brillantes aparecen en más tutoriales

logo logo

©2024 ViveBTC