Функция Pandas Series.str_len()
Series.str.len()Это функция в Pandas, используемая для вычисления длины строки.
При обработке данных нам часто нужно знать информацию о длине строк, например, для проверки длины входных данных, фильтрации текста определенной длины, анализа распределения длины текста и т. д.len()Функция может возвращать количество символов в каждом строковом элементе.
Пояснение термина:lenЭто сокращение от "length", указывающее количество символов в возвращаемой строке.
Базовый синтаксис и параметры
str.len()Это строковый метод-аксессор Series, поэтому сначала нужно иметь Series, содержащий строки, а затем использовать.strаксессор, чтобы вызвать его.
Формат синтаксиса
Series.str.len()
Описание параметра
- Параметр: Нет параметров. Эта функция не требует параметров; просто вызовите её напрямую.
Описание функций
- Возвращаемое значение: Возвращает целочисленный Series, представляющий количество символов в каждой строке.
- Действие: Вычисляет количество символов в каждом строковом элементе Series (включая пробелы и специальные символы).
- Примечание: Для нестроковых элементов возвращает длину его строкового представления.
Примеры
Давайте с помощью серии примеров от простых к сложным основательно освоимstr.len()его использование.
Пример 1: Базовое использование - Вычисление длины строки
Пример
# Создать Series, содержащий строки разной длины
s = pd.Series(['hello', 'example', 'python', 'ai', 'data'])
# Использовать str.len() для вычисления длины каждой строки
result = s.str.len()
print("Исходный ряд:")
print(s)
print("nString length:")
print(result)
Результат вывода:
原始 Series: 0 hello 1 example 2 python 3 ai 4 data dtype: object 字符串长度: 0 5 1 6 2 6 3 2 4 4
Анализ кода:
s.str.len()Вычислить количество символов в каждой строке.- 'hello' содержит 5 символов, возвращает 5.
- 'example' содержит 6 символов, возвращает 6.
- Пустая строка возвращает длину 0.
Пример 2: длина строки, включая пробелы
len()Он подсчитывает все символы, включая пробелы.
Пример
# Создать Series, содержащий пробелы
s = pd.Series(['hello world', 'example python', 'a b c', ' space '])
# Вычислить длину строки
result = s.str.len()
print("Исходный ряд:")
print(s)
print("nДлина строки (включая пробелы):")
print(result)
Результат вывода:
原始 Series: 0 hello world 1 example python 2 a b c 3 space dtype: object 字符串长度(包括空格): 0 11 1 13 2 5 3 8
Анализ кода:
- 'hello world' содержит 11 символов (включая пробел в середине).
- ' space ' содержит 8 символов (включая два пробела до и после).
- Пробелы считаются символами.
Пример 3: Фильтрация строк заданной длины
len()Это часто сочетается с булевой индексацией для фильтрации данных.
Пример
# Создать Series с названиями продуктов
products = pd.Series(['iPhone', 'Samsung Galaxy', 'MacBook Pro', 'iPad', 'Dell XPS'])
# Отфильтровать продукты длиной больше 8
long_names = products[products.str.len() > 8]
# Отфильтровать товары с длиной меньше или равной 5
short_names = products[products.str.len() <= 5]
print("Все товары:")
print(products)
print("nДлина больше8товаров:")
print(long_names)
print("nДлина меньше или равна5товаров:")
print(short_names)
Результат вывода:
所有产品: 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
Анализ кода:
products.str.len() > 8Возвращает булев Series, указывающий, превышает ли длина 8.- Используйте булеву индексацию, чтобы отфильтровать названия продуктов, удовлетворяющие условию.
- Это распространённая операция при фильтрации данных.
Пример 4: Подсчёт распределения длин
len()Это можно использовать для статистического анализа.
Пример
# Создайте Series, содержащий длины предложений
sentences = pd.Series([
'Hello',
'Hello world',
'Pandas is powerful',
'Data science with machine learning',
'AI'
])
# Вычислите длину каждого предложения
lengths = sentences.str.len()
print("Список предложений:")
print(sentences)
print("nДлина каждого предложения в символах:")
print(lengths)
print("nСтатистика:")
print(f"Наименьшая длина: {lengths.min()}")
print(f"Наибольшая длина: {lengths.max()}")
print(f"Средняя длина: {lengths.mean():.2f}")
print(f"Общая длина: {lengths.sum()}")
Результат вывода:
句子列表: 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
Анализ кода:
lengths.min()Возвращает наименьшую длину строки.lengths.max()Возвращает наибольшую длину строки.lengths.mean()Возвращает среднюю длину.lengths.sum()Возвращает общее количество символов.
Пример 5: Обработка данных смешанного типа
len()Он также вычисляет длину строкового представления нестроковых элементов, таких как числа.
Пример
import numpy as np
# Создайте Series со смешанными типами
s = pd.Series(['hello', 12345, 'example', np.nan, 'py'])
# Вычислить длину
result = s.str.len()
print("Исходный ряд:")
print(s)
print("nString length:")
print(result)
Результат вывода:
原始 Series: 0 hello 1 12345 2 example 3 NaN 4 py dtype: object 字符串长度: 0 5.0 1 5.0 2 6.0 3 NaN 4 2.0
Анализ кода:
- Число 12345 преобразуется в строку '12345', длина которой равна 5.
- Значения NaN возвращают NaN (ошибка не возникает).
- Возвращается тип float, потому что NaN — это float.
Пример 6: Сочетание с split для подсчёта слов
Вы можетеlen()иsplit()объедините их, чтобы подсчитать количество слов.
Пример
# Создайте Series, содержащий предложения
sentences = pd.Series([
'hello world',
'example python tutorial',
'pandas data analysis',
'machine learning'
])
# Сначала разбейте, затем вычислите длину, чтобы получить количество слов
word_counts = sentences.str.split().str.len()
print("Список предложений:")
print(sentences)
print("nWord count:")
print(word_counts)
Результат вывода:
句子列表: 0 hello world 1 example python tutorial 2 pandas data analysis 3 machine learning dtype: object 单词数量: 0 2 1 3 2 3 3 2 dtype: int64
Анализ кода:
str.split()Разбейте предложение на список слов..str.len()Вычислите длину списка (т. е. количество слов).- Это очень полезно при подсчёте количества слов в тексте.
Примечания
str.len()Он подсчитывает количество символов, а не байтов.- Для китайских иероглифов каждый иероглиф считается одним символом.
- Специальные символы, такие как пробелы и табуляции, также учитываются.
- Если Series содержит значения NaN, возвращается NaN (вместо ошибки).
- Для нестроковых элементов (например, чисел) они сначала преобразуются в строки, а затем вычисляется длина.
- Эта функция возвращает новый Series и не изменяет исходные данные.
Другие расширения
Pandas: общие функции