Функция Pandas Series.str_len()

Pandas 常用函数Pandas: общие функции


Series.str.len()Это функция в Pandas, используемая для вычисления длины строки.

При обработке данных нам часто нужно знать информацию о длине строк, например, для проверки длины входных данных, фильтрации текста определенной длины, анализа распределения длины текста и т. д.len()Функция может возвращать количество символов в каждом строковом элементе.

Пояснение термина:lenЭто сокращение от "length", указывающее количество символов в возвращаемой строке.


Базовый синтаксис и параметры

str.len()Это строковый метод-аксессор Series, поэтому сначала нужно иметь Series, содержащий строки, а затем использовать.strаксессор, чтобы вызвать его.

Формат синтаксиса

Series.str.len()

Описание параметра

  • Параметр: Нет параметров. Эта функция не требует параметров; просто вызовите её напрямую.

Описание функций

  • Возвращаемое значение: Возвращает целочисленный Series, представляющий количество символов в каждой строке.
  • Действие: Вычисляет количество символов в каждом строковом элементе Series (включая пробелы и специальные символы).
  • Примечание: Для нестроковых элементов возвращает длину его строкового представления.

Примеры

Давайте с помощью серии примеров от простых к сложным основательно освоимstr.len()его использование.

Пример 1: Базовое использование - Вычисление длины строки

Пример

import pandas as pd

# Создать 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

Анализ кода:

  1. s.str.len()Вычислить количество символов в каждой строке.
  2. 'hello' содержит 5 символов, возвращает 5.
  3. 'example' содержит 6 символов, возвращает 6.
  4. Пустая строка возвращает длину 0.

Пример 2: длина строки, включая пробелы

len()Он подсчитывает все символы, включая пробелы.

Пример

import pandas as pd

# Создать 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()Это часто сочетается с булевой индексацией для фильтрации данных.

Пример

import pandas as pd

# Создать 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()Это можно использовать для статистического анализа.

Пример

import pandas as pd

# Создайте 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 pandas as pd
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()объедините их, чтобы подсчитать количество слов.

Пример

import pandas as pd

# Создайте 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 常用函数Pandas: общие функции

Другие расширения