Pandas
Tutorial Pandas: Operaciones de cadena de texto y categóricas
Pandas lección sobre operaciones de cadena de texto y datos categóricos. Aprende a manipular y analizar datos textuales y categóricos en Pandas. Entra y mejora tu manejo de datos.
Aprende Pandas GRATIS y certifícateTipos de dato texto y categóricos
En Pandas, los tipos de dato texto y categóricos son fundamentales para la manipulación y análisis de datos. Los datos de tipo texto se representan utilizando el tipo object
o string
en Pandas, mientras que los datos categóricos se representan con el tipo category
. Cada uno de estos tipos tiene sus particularidades y ventajas en el manejo de datos.
El tipo texto (object
o string
) se utiliza generalmente para datos que representan cadenas de caracteres. Las operaciones comunes con datos de tipo texto incluyen la búsqueda de patrones, la manipulación de cadenas y la limpieza de datos. Pandas proporciona una serie de métodos específicos para trabajar con datos de tipo texto, accesibles a través del atributo .str
.
Ejemplo de creación de una Serie
de tipo texto:
import pandas as pd
# Crear una Serie de tipo texto
serie_texto = pd.Series(['manzana', 'banana', 'cereza'])
print(serie_texto)
El tipo categórico (category
) se utiliza para datos que toman un número limitado y fijo de posibles valores, como categorías o etiquetas. Los datos categóricos son útiles para representar variables cualitativas y pueden ofrecer mejoras significativas en la eficiencia de almacenamiento y el rendimiento de ciertas operaciones. Además, permiten realizar operaciones estadísticas y de agrupamiento de manera más efectiva.
Ejemplo de creación de una Serie
categórica:
# Crear una Serie categórica
serie_categorica = pd.Series(['bajo', 'medio', 'alto', 'medio'], dtype='category')
print(serie_categorica)
Las ventajas del uso de datos categóricos incluyen:
- Eficiencia de almacenamiento: Los datos categóricos se almacenan internamente como enteros, lo que reduce el uso de memoria.
- Optimización de operaciones: Las operaciones sobre datos categóricos pueden ser más rápidas debido a la representación interna eficiente.
- Facilitación de análisis: Los datos categóricos permiten realizar operaciones de agrupamiento y análisis estadísticos con mayor facilidad.
Transformar datos de texto a categóricos puede ser beneficioso en muchos casos. Por ejemplo, si se tiene una columna de un DataFrame que contiene un número limitado de categorías distintas, se puede convertir a tipo categórico para mejorar la eficiencia.
Ejemplo de conversión de una columna de texto a categórica:
# Crear un DataFrame con una columna de tipo texto
df = pd.DataFrame({'nivel': ['bajo', 'medio', 'alto', 'medio']})
# Convertir la columna a tipo categórico
df['nivel'] = df['nivel'].astype('category')
print(df.dtypes)
Para trabajar con datos de tipo texto y categóricos, Pandas ofrece diversas funciones y métodos que facilitan la manipulación y el análisis. Es importante seleccionar el tipo de dato adecuado según las necesidades específicas del análisis para optimizar tanto el rendimiento como la claridad del código.
Operaciones de texto
En Pandas, las operaciones de texto son esenciales para la manipulación y transformación de datos textuales. Estas operaciones se realizan principalmente utilizando el atributo .str
, que proporciona una interfaz para aplicar métodos de cadena de texto sobre las Series de Pandas.
A continuación, se describen algunas de las operaciones más comunes y útiles que se pueden realizar:
- Cambio de mayúsculas y minúsculas: Es posible convertir el texto a minúsculas o mayúsculas con los métodos
.str.lower()
y.str.upper()
respectivamente.
import pandas as pd
serie_texto = pd.Series(['Manzana', 'BANANA', 'Cereza'])
print(serie_texto.str.lower())
print(serie_texto.str.upper())
- Eliminación de espacios en blanco: Para eliminar espacios en blanco al inicio y al final de las cadenas de texto, se puede utilizar
.str.strip()
. También existen.str.lstrip()
y.str.rstrip()
para eliminar espacios solo al inicio o al final.
serie_texto = pd.Series([' manzana ', ' banana ', ' cereza '])
print(serie_texto.str.strip())
- Reemplazo de subcadenas: El método
.str.replace()
permite reemplazar subcadenas dentro de las cadenas de texto. Este método soporta expresiones regulares.
serie_texto = pd.Series(['manzana', 'banana', 'cereza'])
print(serie_texto.str.replace('a', 'o'))
- División y particionado: Las cadenas de texto pueden dividirse en listas de subcadenas utilizando
.str.split()
. También es posible particionar las cadenas en partes utilizando.str.partition()
.
serie_texto = pd.Series(['manzana,banana,cereza'])
print(serie_texto.str.split(','))
- Concatenación de cadenas: Se pueden concatenar cadenas de texto utilizando el operador
+
o el método.str.cat()
. Este último ofrece más opciones, como especificar un separador.
serie_texto = pd.Series(['manzana', 'banana', 'cereza'])
print(serie_texto.str.cat(sep=', '))
- Extracción de subcadenas: Para extraer subcadenas específicas, se puede utilizar
.str.slice()
o.str.extract()
. El primero permite extraer subcadenas basándose en índices, mientras que el segundo utiliza expresiones regulares.
serie_texto = pd.Series(['manzana', 'banana', 'cereza'])
print(serie_texto.str.slice(0, 3)) # Extrae los primeros tres caracteres
print(serie_texto.str.extract(r'(\w{3})')) # Extrae las primeras tres letras usando regex
- Comprobaciones de patrones: Se pueden realizar comprobaciones sobre las cadenas de texto para verificar si cumplen ciertos patrones utilizando métodos como
.str.contains()
,.str.startswith()
, y.str.endswith()
.
serie_texto = pd.Series(['manzana', 'banana', 'cereza'])
print(serie_texto.str.contains('an'))
print(serie_texto.str.startswith('ma'))
print(serie_texto.str.endswith('za'))
- Longitud de cadenas: Es posible obtener la longitud de cada cadena de texto utilizando
.str.len()
.
serie_texto = pd.Series(['manzana', 'banana', 'cereza'])
print(serie_texto.str.len())
El uso de estas operaciones de texto en Pandas permite la limpieza y transformación eficiente de datos textuales, lo cual es fundamental en tareas de análisis de datos.
Operaciones sobre datos categóricos
Las operaciones sobre datos categóricos en Pandas son esenciales para la manipulación y análisis eficiente de datos que representan categorías o etiquetas. Los datos categóricos se almacenan internamente como enteros, lo que proporciona una ventaja significativa en términos de eficiencia de almacenamiento y rendimiento de las operaciones.
- Creación de datos categóricos: Los datos categóricos se pueden crear directamente al definir una Serie o al convertir una Serie existente de otro tipo de datos.
import pandas as pd
# Crear una Serie categórica desde cero
serie_categorica = pd.Series(['rojo', 'verde', 'azul'], dtype='category')
print(serie_categorica)
# Convertir una Serie de texto a categórica
serie_texto = pd.Series(['bajo', 'medio', 'alto', 'medio'])
serie_texto = serie_texto.astype('category')
print(serie_texto)
- Reordenación de categorías: Es posible reordenar las categorías utilizando el método
.reorder_categories()
. Esto es útil cuando se necesita un orden específico para el análisis o la visualización de datos.
# Reordenar categorías
serie_categorica = serie_categorica.cat.reorder_categories(['verde', 'rojo', 'azul'], ordered=True)
print(serie_categorica)
- Añadir y eliminar categorías: Se pueden añadir nuevas categorías a una Serie categórica existente utilizando
.add_categories()
, y eliminar categorías con.remove_categories()
.
# Añadir una nueva categoría
serie_categorica = serie_categorica.cat.add_categories(['amarillo'])
print(serie_categorica)
# Eliminar una categoría
serie_categorica = serie_categorica.cat.remove_categories(['amarillo'])
print(serie_categorica)
- Renombrar categorías: Las categorías pueden ser renombradas utilizando el método
.rename_categories()
. Este método es útil para ajustar los nombres de las categorías a convenciones específicas o para mejorar la legibilidad.
# Renombrar categorías
serie_categorica = serie_categorica.cat.rename_categories({'rojo': 'Red', 'verde': 'Green', 'azul': 'Blue'})
print(serie_categorica)
- Ordenación y Comparación: Las Series categóricas pueden ser ordenadas fácilmente. Las categorías ordenadas permiten realizar comparaciones lógicas entre los elementos. Por ejemplo, cuando las categorías tienen un orden implícito (como "bajo", "medio", "alto"), es posible comparar los elementos directamente para determinar su relación.
# Ordenar una Serie categórica
serie_ordenada = serie_texto.sort_values()
print(serie_ordenada)
# Crear una Serie categórica con un orden específico
serie_texto_ordenado = serie_texto.astype(pd.CategoricalDtype(categories=['bajo', 'medio', 'alto'], ordered=True))
print(serie_texto_ordenado > 'bajo') # Esto devolverá True para categorías superiores a 'bajo'
- Agrupamiento y agregación: Los datos categóricos son extremadamente útiles para operaciones de agrupamiento y agregación, ya que permiten segmentar los datos de manera eficiente según las categorías.
# Crear un DataFrame con datos categóricos
df = pd.DataFrame({
'grupo': pd.Series(['A', 'B', 'A', 'B', 'A'], dtype='category'),
'valor': [10, 20, 30, 40, 50]
})
# Agrupar por la columna categórica y calcular la media
agrupado = df.groupby('grupo', observed=False).mean()
print(agrupado)
- Conversión a otro tipo de datos: En caso de ser necesario, se puede convertir una Serie categórica a otro tipo de datos, como texto o numérico, utilizando el método
.astype()
.
# Convertir a texto
serie_texto = serie_categorica.astype('str')
print(serie_texto)
# Convertir a numérico (códigos)
serie_numerica = serie_categorica.cat.codes
print(serie_numerica)
Las operaciones sobre datos categóricos en Pandas son esenciales para un manejo eficiente y optimizado de datos cualitativos, permitiendo realizar análisis y transformaciones complejas de manera sencilla y eficaz.
Ejercicios de esta lección Operaciones de cadena de texto y categóricas
Evalúa tus conocimientos de esta lección Operaciones de cadena de texto y categóricas con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.
Introducción e instalación de pandas
Operaciones de filtrado, búsqueda y ordenación
Operaciones de cadena de texto y categóricas
Tratamiento de valores faltantes
Manipulación de DataFrames
Codificación de variables categóricas a numéricas
Tipos de datos en DataFrames
Identificar y corregir errores y duplicados
Operaciones matemáticas y estadísticas
Evaluación código conocimiento general de Pandas
Evaluación multirespuesta Conocimiento general de Pandas
Integración de Pandas con Matplotlib
Operaciones con fechas
Entrada de datos externos y salida de datos con Pandas
Análisis de datos de eventos deportivos con Pandas en Python
Identificar y corregir outliers
Series
Integración de Pandas con Seaborn
Operaciones de conjuntos
Identificación de valores faltantes
DataFrames
Análisis de datos de ventas con Numpy y Pandas
Todas las lecciones de Pandas
Accede a todas las lecciones de Pandas y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción E Instalación De Pandas
Introducción Y Entorno
Series
Estructuras De Datos
Dataframes
Estructuras De Datos
Tipos De Datos En Dataframes
Estructuras De Datos
Manipulación De Dataframes
Manipulación De Datos
Operaciones De Filtrado, Búsqueda Y Ordenación
Manipulación De Datos
Operaciones De Cadena De Texto Y Categóricas
Manipulación De Datos
Operaciones Matemáticas Y Estadísticas
Manipulación De Datos
Operaciones Con Fechas
Manipulación De Datos
Operaciones De Conjuntos
Manipulación De Datos
Identificación De Valores Faltantes
Limpieza Y Preparación De Datos
Tratamiento De Valores Faltantes
Limpieza Y Preparación De Datos
Identificar Y Corregir Errores Y Duplicados
Limpieza Y Preparación De Datos
Identificar Y Corregir Outliers
Limpieza Y Preparación De Datos
Codificación De Variables Categóricas A Numéricas
Limpieza Y Preparación De Datos
Entrada De Datos Externos Y Salida De Datos Con Pandas
Integraciones
Integración De Pandas Con Matplotlib
Integraciones
Integración De Pandas Con Seaborn
Integraciones
Evaluación Multirespuesta Conocimiento General De Pandas
Evaluación Pandas
Evaluación Código Conocimiento General De Pandas
Evaluación Pandas
Certificados de superación de Pandas
Supera todos los ejercicios de programación del curso de Pandas y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.
En esta lección
Objetivos de aprendizaje de esta lección
Comprender los tipos de dato texto (object o string) y categóricos (category) en Pandas.
Realizar operaciones comunes con datos de tipo texto utilizando el atributo
.str
.Crear y manipular
Series
categóricas.Optimizar el almacenamiento y rendimiento de los datos categóricos.
Realizar operaciones de agrupamiento y agregación con datos categóricos.
Convertir entre tipos de dato texto y categóricos.