На этой шпаргалке показано, как убрать пробелы, удалить цифры, вытянуть email, найти номера телефонов, извлечь значения цен, заменить шаблоны и настроить очистку текста с помощью регулярных выражений в Python.
import pandas as pd
import re
# Пример данных
df = pd.DataFrame({
'text': [' Hello123! ', 'Email: test@example.com', 'Price is $45.99', 'Call: +91-9876543210']
})
1. Удаление пробелов в начале и конце
df['clean'] = df['text'].str.strip()
2. Удаление всех неалфавитно-цифровых символов
df['clean'] = df['text'].str.replace(r'[^a-zA-Z0-9 ]', '', regex=True)
3. Удаление всех цифр
df['clean'] = df['text'].str.replace(r'\d+', '', regex=True)
4. Извлечение Email адреса
df['email'] = df['text'].str.extract(r'[\w\.-]+@[\w\.-]+')
5. Извлечение номеров телефонов (пример для Индии)
df['phone'] = df['text'].str.extract(r'\+91[-\s]?(\d{10})')
6. Извлечение цен
df['price'] = df['text'].str.extract(r'\$([\d\.]+)')
7. Замена множества пробелов на один
df['clean'] = df['text'].str.replace(r'\s+', ' ', regex=True)
8. Приведение к нижнему регистру и удаление спецсимволов
df['clean'] = df['text'].str.lower().str.replace(r'[^a-z0-9 ]', '', regex=True)
9. Извлечение только букв или только цифр
df['only_text'] = df['text'].str.extract(r'([a-zA-Z\s]+)')
df['only_digits'] = df['text'].str.extract(r'(\d+)')
10. Пользовательская замена с использованием re.sub()
df['custom'] = df['text'].apply(lambda x: re.sub(r'\W+', '_', x)) # Заменяет все не-словесные символы на _
👉 @PythonPortal
