❓ Задача:
Обработать несколько .csv файлов и нормализовать содержимое столбцов таким образом, чтобы данные были одного формата. Например, привести номер телефона из формата "8 (908) 800 80 80" к виду "79088008080".
Для этого используем комбинацию предварительной обработки файлов с помощью EmEditor и написания скрипта на Python для дальнейшей нормализации данных.
✔️ Обработка текста Ф.И.О.
Для нормализации данных в столбцах с Ф.И.О. можно использовать функции Python для работы со строками. Например, можно написать функцию, которая удаляет лишние символы, заменяет латинские буквы на русские (если это необходимо), и нормализует формат Ф.И.О., удаляя лишние пробелы и тире.
✔️ Нормализация номера телефона
Для приведения номеров телефонов к единому виду можно использовать регулярные выражения или специальные функции Python. Например, можно удалить все нецифровые символы и добавить префикс, если он отсутствует.
✔️ Нормализация адреса электронной почты
Адреса электронной почты также могут требовать нормализации. Это может включать в себя удаление лишних символов, проверку наличия символа "@", а также доменной части адреса.
✔️ Нормализация даты рождения
Дата рождения может быть представлена в различных форматах. Для ее нормализации можно использовать модули Python для работы с датами и временем, такие как
datetime. Это позволит привести даты к единому формату.🖥 Например:
import re
import string
def fio_normalize(fio: str) -> str:
"""Нормализация ФИО. Проверка, является или ФИО написанным латиницей. Удаление цифр, тире."""
fio = fio.strip().lower()
fio = re.sub(r'[^a-zа-я-ё ]', "", fio).strip()
fio = dash_clear(fio)
if is_latin(fio):
fio = fio.title()
else:
fio = "".join([replacer(x) if x in string.ascii_letters else x for x in fio])
fio = re.sub(r'[^а-я-ё ]', '', fio).title()
return fio if fio.strip() else ""
➡️ Читать подробнее
