Функция Pandas Series.str.strip()
Series.str.strip()Это функция в Pandas, используемая для удаления пробельных символов с обоих концов строк.
При обработке данных нам часто нужно очищать текстовые данные из пользовательского ввода или прочитанные из файлов, которые могут содержать лишние пробелы, табуляции или символы новой строки с обоих концов.strip()Функция может удалять пробельные символы с обоих концов строк, делая данные более чистыми и упорядоченными.
Определение слова:stripОно означает «отслаивать, удалять», и здесь указывает на удаление пробельных символов с обоих концов строк.
Базовый синтаксис и параметры
str.strip()Это строковый аксессор Series, поэтому сначала нужно иметь Series, содержащий строки, а затем использовать.strаксессор, чтобы вызвать его.
Формат синтаксиса
Series.str.strip(to_strip=None)
Описание параметра
| Параметр | Type | Обязательно? | Описание | Значение по умолчанию |
|---|---|---|---|---|
| to_strip | str | Optional | Укажите набор символов для удаления. Если не указано, по умолчанию удаляются пробельные символы (включая пробелы, табуляции, символы новой строки и т. д.). | None (пробельные символы) |
Описание функций
- Возвращаемое значениеВозвращает новый Series с пробельными символами, удалёнными с обоих концов.
- ЭффектУдаляет пробельные символы с обоих концов каждого строкового элемента, при этом пробельные символы в середине остаются без изменений.
- ПримечаниеУдаляет символы только с обоих концов строки; символы в середине не затрагиваются.
Примеры
На серии примеров от простого к сложному давайте тщательно освоимstr.strip()его использование.
Пример 1: Базовое использование - удаление пробельных символов в начале и конце
Пример
# Создать Series, содержащий пробельные символы
s = pd.Series([' hello ', 'tworldt', 'nexamplen', ' python '])
# Используйте str.strip() для удаления пробельных символов с обоих концов
result = s.str.strip()
print("Исходный ряд:")
print(repr(s)) # Используйте repr() для отображения необработанных символов (включая невидимые символы)
print(Результат после удаления пробельных символов из n:)
print(result)
Результат вывода:
原始 Series: 0 ' hello ' 1 'tworldt' 2 'nexamplen' 3 ' python ' dtype: object 去除空白后的结果: 0 hello 1 world 2 example 3 python
Пояснение к коду:
pd.Series([' hello ', ...])Создан Series, содержащий пробельные символы.repr(s)Используется для отображения исходного содержимого строки, включая невидимые символы, такие как пробелы и табуляции.s.str.strip()Удалены пробельные символы с обоих концов каждой строки.- Пробельные символы в середине строки остаются без изменений.
Пример 2: Удаление указанных символов
Вы можетеto_stripукажите символы для удаления через параметр.
Пример
# Создать Series, содержащий указанные символы
s = pd.Series(['xxxhello xxx', 'yyyworldyyy', 'zzzexamplezzz'])
# Удалить символы 'x' с обоих концов
result_x = s.str.strip('x')
# Удалить символы 'y' с обоих концов
result_y = s.str.strip('y')
# Удалить символы 'z' с обоих концов
result_z = s.str.strip('z')
print("Исходный ряд:")
print(s)
print("nРезультат после удаления 'x':")
print(result_x)
print("nРезультат после удаления 'y':")
print(result_y)
print("nРезультат после удаления 'z':")
print(result_z)
Результат вывода:
原始 Series: 0 xxxhello xxx 1 yyyworldyyy 2 zzzexamplezzz dtype: object 去除 'x' 后的结果: 0 hello xxx 1 yyyworldyyy 2 zzzexamplezzz 去除 'y' 后的结果: 0 xxxhello xxx 1 worldyyy 2 zzzexamplezzz 去除 'z' 后的结果: 0 xxxhello xxx 1 yyyworldyyy 2 examplezzz
Пояснение к коду:
strip('x')Удаляются только символы 'x' на обоих концах строки.- Если в середине строки есть такие же символы, они не будут удалены.
- Удаляются только символы, идущие подряд на обоих концах.
Пример 3: Обработка проблем с пробелами в реальных данных
При обработке данных из файлов или пользовательского ввода,strip()эта функция очень полезна.
Пример
# Имитация данных имени пользователя, собранных из формы (может содержать лишние пробелы)
usernames = pd.Series([' admin ', 'user123', ' moderator ', 'guest'])
# cleanupUsername
cleaned_usernames = usernames.str.strip()
print(Исходное имя пользователя:)
print(usernames)
print(nОчищенное имя пользователя:)
print(cleaned_usernames)
# Удалите пробелы перед сравнением
print(n Равны ли они после удаления пробелов:)
print(cleaned_usernames == 'admin')
Результат вывода:
原始用户名: 0 admin 1 user123 2 moderator 3 guest dtype: object 清理后的用户名: 0 admin 1 user123 2 moderator 3 guest 清理后的用户名: 0 True 1 False 2 False 3 False
Пояснение к коду:
strip()Удалены пробелы в начале и конце имён пользователей.- Это гарантирует, что введённые пользователем
' admin 'могут быть правильно сопоставлены.'admin'。 - Это важный шаг в очистке данных, который позволяет избежать ошибок сопоставления, вызванных пробелами.
Связанные функции
Pandas также предоставляет другие функции для удаления пробелов:
str.lstrip()- Удаляет пробелы только с левой стороны (начала) строки.str.rstrip()- Удаляет пробелы только с правой стороны (конца) строки.
Пример
s = pd.Series([' hello world '])
print(Исходная строка:, repr(s[0]))
print("strip():", repr(s.str.strip()[0])) # Удалить с обоих концов
print("lstrip():", repr(s.str.lstrip()[0])) # Удалить слева
print("rstrip():", repr(s.str.rstrip()[0])) # Удалить справа
Результат вывода:
原始字符串: ' hello world ' strip(): 'hello world' lstrip(): 'hello world ' rstrip(): ' hello world'
Примечания
str.strip()По умолчанию удаляются пробельные символы, включая пробелы, табуляции (\t), переводы строк (\n), возвраты каретки (\r) и т. д.- Эта функция удаляет символы только с обоих концов строки; символы в середине не затрагиваются.
- Если Series содержит значения NaN,
strip()будет возвращено NaN. - Эта функция возвращает новый Series и не изменяет исходные данные.
Другие расширения
Pandas: общие функции