Время прочтения: 2 мин.

Вот так и родилась идея «обезличить» отчёт из CRM Розничный, удалив из него персональные данные при помощи, разработанной программы на Python.

Для обработки обращений используется библиотека Pandas для Python. Данная библиотека предоставляет возможность для удобной работы с таблицами. Скрывать данные мы будем заменой символов с помощью команды pd.replace и регулярных выражений (Regex).

Ниже предоставлен фрагмент кода, обрабатывающий таблицу с обращениями и скрывающий конфиденциальные данные. !!!Уточнение — В конце каждой строчки кода в блоке обработки необходимо удалить комментарии, чтобы код был корректен. Комментарии здесь указываются для понимания, что конкретно скрывается.

КОД ПРОГРАММЫ:

import pandas as pd  #Импортируем библиотеку Pandas

df = pd.read_csv('crm.csv', sep = ';',encoding = 'cp1251')  #Загружаем файл с обращениями для обработки

pd.set_option('display.max_colwidth', 10000) # Задаем параметры размеров отображения данных
pd.set_option('display.max_rows', 500)
pd.set_option('display.max_columns', 100)

# Далее идет блок обработки
ff = df.replace('\d{5}.\d{3}.\d.\d{4}.\d{7}',  ' XXXXXXXXXXXXXXXX ', regex = True) \ #Счет, карта
       .replace('\d{14}',  ' XXXXXXXXXXXXXXXX ', regex = True) \ #Счет, карта
       .replace('[8][9]\d{9}', ' XXXXXXXXXXXX ', regex = True) \ #Моб. телефон
       .replace('[7][9]\d{9}', ' XXXXXXXXXXXX ', regex = True) \ #Моб. телефон
       .replace('\d\d.\d\d.\d\d\d\d[Г,г][.] [Р,р]', ' др XXXXXXX ', regex = True) \ #Дата рождения
       .replace('Корректные данные: \w\w.....', ' Корректные данные: ХХ.ХX.XXXX ', regex = True) #Дата рождения, паспорт, карта.

Данный фрагмент программы делает замену символов, со стоящих в определенном порядке, представленном в регулярном выражении, на другие заданные нами символы. Поскольку поле, где непосредственно указывается суть обращения, ненормализованно из-за того что большая часть обращений составлена самими клиентами, нам сначала вручную выявлялись различные паттерны в записях, содержащие конфиденциальные данные. Чем более ненормализованна форма данных, тем более будут разнообразны паттерны в записях в обращении. Это занимает больше времени, потому что необходимо их, во-первых, выявить, во-вторых, подобрать такое регулярное выражение, чтобы закрыть именно выявленную информацию, не закрыв данные, которые нам понадобятся для анализа и которые могут быть похожи на конфиденциальную, но таковыми не являются.  

Хотите получить дополнительные источники для анализа? Предлагаем воспользоваться нашей разработкой.