TGViewer
Codeby Codeby @codeby_sec · 37.1K subscribers
Post #8258 6.59K
В новой статье найдем подход к обработке больших объемов данных в .csv файлах с различной структурой столбцов и содержимым. Это может быть особенно полезно для тех, кто сталкивается с необходимостью нормализации данных перед их дальнейшим анализом или использованием в проектах.

❓ Задача:
Обработать несколько .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 ""


➡️ Читать подробнее
  • 👍 20
  • 🔥 5
  • ❤ 2
  • 💯 2
More from @codeby_sec
  1. Oct 12, 2026❗️ Новости недели (5 – 11 октября) Разбираем главные события недели: ЦОДы «Яндекса», ИИ на…
  2. Oct 12, 2026Ищешь баги? Здесь ищут тебя. Вилка: 160–220 тысяч ₽ на руки. ООО «Артис» набирает Web Pent…
  3. Oct 12, 202635 из 40 резюме — в корзину. Что не так с junior-пентестерами? За последний квартал я отсм…
  4. Oct 10, 2026Ты ещё используешь Sherlock или уже перешёл на что-то другое? Прогоняешь никнейм, получаеш…
  5. Oct 10, 2026🚩 Новые задания на платформе HackerLab! 🧰 Категория PWN — Я в своём познании настолько п…
  6. Oct 9, 2026✈️ Telegram Desktop — критическая уязвимость в обработке tg://-ссылок (CVE-2026-107181) В…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →