Función Pandas Series.str_len()
Series.str.len()Es una función de Pandas que se utiliza para calcular la longitud de cadenas de texto.
En el proceso de procesamiento de datos, a menudo necesitamos conocer la información de longitud de las cadenas, como validar la longitud de entrada, filtrar texto de longitud específica, analizar la distribución de longitudes de texto, etc.len()La función devuelve la cantidad de caracteres de cada elemento de cadena.
Definición del término:lenEs la abreviatura de "length" (longitud) e indica que se devuelve el número de caracteres de la cadena.
Sintaxis básica y parámetros
str.len()Es un método de acceso a cadenas de Series, por lo que primero necesitas tener una Series que contenga cadenas y luego, mediante el.straccesor, invocarlo.
Formato de sintaxis
Series.str.len()
Descripción de parámetros
- Parámetros:Sin parámetros. Esta función no requiere parámetros, solo hay que invocarla directamente.
Descripción de la función
- Valor de retorno:Devuelve una Series de enteros que representa el número de caracteres de cada cadena.
- Efecto:Calcula el número de caracteres de cada elemento de cadena en la Series (incluyendo espacios y caracteres especiales).
- Nota:Para elementos que no son cadenas, devuelve la longitud de su representación como cadena.
Ejemplos
Vamos a dominar a fondo, mediante una serie de ejemplos de simples a complejos,str.len()el uso de esta función.
Ejemplo 1: Uso básico - Calcular la longitud de una cadena
Ejemplos
# Crea una Series que contiene cadenas de diferentes longitudes
s = pd.Series(['hello', 'ejemplo', 'python', 'ai', 'data'])
# Utiliza str.len() para calcular la longitud de cada cadena
result = s.str.len()
print("Series original:")
print(s)
print("nLongitud de la cadena:")
print(result)
Resultado de salida:
原始 Series: 0 hello 1 ejemplo 2 python 3 ai 4 data dtype: object 字符串长度: 0 5 1 6 2 6 3 2 4 4
Análisis del código:
s.str.len()Calcula el número de caracteres de cada cadena.- 'hello' tiene 5 caracteres, devuelve 5.
- 'ejemplo' tiene 6 caracteres, devuelve 6.
- Una cadena vacía devuelve una longitud de 0.
Ejemplo 2: Longitud de cadenas con espacios
len()Calcula todos los caracteres, incluidos los espacios.
Ejemplos
# Crea una Series que contiene espacios
s = pd.Series(['hello world', 'ejemplo python', 'a b c', ' space '])
# Calcula la longitud de las cadenas
result = s.str.len()
print("Series original:")
print(s)
print("nLongitud de la cadena (incluyendo espacios):")
print(result)
Resultado de salida:
原始 Series: 0 hello world 1 ejemplo python 2 a b c 3 space dtype: object 字符串长度(包括空格): 0 11 1 13 2 5 3 8
Análisis del código:
- 'hello world' tiene 11 caracteres (incluyendo el espacio del medio).
- ' space ' tiene 8 caracteres (incluyendo los dos espacios delante y detrás).
- Los espacios se cuentan como caracteres.
Ejemplo 3: Filtrar cadenas de longitud específica
len()Se usa frecuentemente combinado con indexación booleana para filtrar datos.
Ejemplos
# Crea una Series con nombres de productos
products = pd.Series(['iPhone', 'Samsung Galaxy', 'MacBook Pro', 'iPad', 'Dell XPS'])
# Filtra los productos con longitud mayor que 8
long_names = products[products.str.len() > 8]
# Filtra los productos con longitud menor o igual que 5
short_names = products[products.str.len() <= 5]
print("Todos los productos:")
print(products)
print("nLongitud mayor que8productos:")
print(long_names)
print("nLongitud menor o igual que5productos:")
print(short_names)
Resultado de salida:
所有产品: 0 iPhone 1 Samsung Galaxy 2 MacBook Pro 3 iPad 4 Dell XPS dtype: object 长度大于 8 的产品: 1 Samsung Galaxy 2 MacBook Pro 4 Dell XPS dtype: object 长度小于等于 5 的产品: 0 iPhone 3 iPad dtype: object
Análisis del código:
products.str.len() > 8Devuelve una Series booleana que indica si la longitud es mayor que 8.- Utiliza la indexación booleana para filtrar los nombres de productos que cumplen la condición.
- Esta es una operación común en el filtrado de datos.
Ejemplo 4: Distribución de longitudes
len()Puede utilizarse para análisis estadístico.
Ejemplos
# Crea una Series con la longitud de las oraciones
sentences = pd.Series([
'Hello',
'Hello world',
'Pandas is powerful',
'Data science with machine learning',
'AI'
])
# Calcula la longitud de cada oración
lengths = sentences.str.len()
print("Lista de oraciones:")
print(sentences)
print("nLongitud de caracteres de cada oración:")
print(lengths)
print("nInformación estadística:")
print(f"Longitud mínima: {lengths.min()}")
print(f"Longitud máxima: {lengths.max()}")
print(f"Longitud media: {lengths.mean():.2f}")
print(f"Longitud total: {lengths.sum()}")
Resultado de salida:
句子列表: 0 Hello 1 Hello world 2 Pandas is powerful 3 Data science with machine learning 4 AI dtype: object 每个句子的字符长度: 0 5 1 11 2 18 3 29 4 2 dtype: int64 统计信息: 最短长度: 2 最长长度: 29 平均长度: 13.00 总长度: 65
Análisis del código:
lengths.min()Devuelve la longitud de cadena más corta.lengths.max()Devuelve la longitud de cadena más larga.lengths.mean()Devuelve la longitud media.lengths.sum()Devuelve el número total de caracteres.
Ejemplo 5: Manejo de datos de tipos mixtos
len()También calcula la longitud de la representación como cadena de elementos que no son cadenas, como los números.
Ejemplos
import numpy as np
# Crea una Series que contiene tipos mixtos
s = pd.Series(['hello', 12345, 'ejemplo', np.nan, 'py'])
# Calcula la longitud
result = s.str.len()
print("Series original:")
print(s)
print("nLongitud de la cadena:")
print(result)
Resultado de salida:
原始 Series: 0 hello 1 12345 2 ejemplo 3 NaN 4 py dtype: object 字符串长度: 0 5.0 1 5.0 2 6.0 3 NaN 4 2.0
Análisis del código:
- El número 12345 se convierte en la cadena '12345', con una longitud de 5.
- Los valores NaN devuelven NaN (no se produce ningún error).
- Devuelve un tipo float, porque NaN es de tipo float.
Ejemplo 6: Calcular el número de palabras combinando con split
Puedeslen()ysplit()combinar para calcular el número de palabras.
Ejemplos
# Crea una Series que contiene oraciones
sentences = pd.Series([
'hello world',
'ejemplo python tutorial',
'pandas data analysis',
'machine learning'
])
# Primero divide y luego calcula la longitud, así se obtiene el número de palabras
word_counts = sentences.str.split().str.len()
print("Lista de oraciones:")
print(sentences)
print("nNúmero de palabras:")
print(word_counts)
Resultado de salida:
句子列表: 0 hello world 1 ejemplo python tutorial 2 pandas data analysis 3 machine learning dtype: object 单词数量: 0 2 1 3 2 3 3 2 dtype: int64
Análisis del código:
str.split()Divide la oración en una lista de palabras..str.len()Calcula la longitud de la lista (es decir, el número de palabras).- Esto es muy útil al contar el número de palabras de un texto.
Notas importantes
str.len()Se calcula el número de caracteres, no el de bytes.- Para los caracteres chinos, cada carácter chino cuenta como un carácter.
- Los espacios, tabulaciones y otros caracteres especiales también se cuentan.
- Si la Series contiene valores NaN, devuelve NaN (en lugar de lanzar un error).
- Para elementos que no son cadenas (como números), primero se convierten a cadena y luego se calcula la longitud.
- Esta función devuelve una nueva Series y no modifica los datos originales.
Otras extensiones
Funciones comunes de Pandas