Dobre praktyki pracy z danymi

Dobre praktyki inżyniera/analityka danych obejmują dbałość o jakość danych, ich spójność oraz bezpieczeństwo.

Jakość danych

Dbałość o jakość danych obejmuje sprawdzanie duplikatów, typów danych, nulli, obecności wartości w określonym zakresie, posiadania określonej postaci (np. nr telefonu xxx-xxx-xxx).

Dobrą praktyką (i zdecydowanie zalecaną produkcyjnie) jest umieszczenie w jednej klasie/module/pliku.py funkcji wywoływanych w osobnym pliku.

Utwórzmy zatem klasę z pierwszą definicją funkcji sprawdzającej braki danych:

I jej wywołanie:

Sprawdzenie duplikatów po wybranych kolumnach oraz po całym zbiorze:

Sprawdzanie określonej postaci danych np. dla mac_address xx:xx:xx:xx:xx:xx

Typy danych w kolumnach:

Spójność (integralność danych) obejmuje m.in. sprawdzanie czy występują osierocone rekordy w jednej tabeli

Sprawdzamy czy dla każdego usera w jednej tabeli występuje rekord w innej:

Dbałość o bezpieczeństwo to anonimizacja lub pomijanie niektórych danych które nie powinny być widoczne dla danej osoby (grupy osób)

Np. funkcja anonimizująca pierwszą część członu adresu mailowego:

Co jak znajdziemy dane niepodpowiadające naszym standardom jakości

W zależności od wymagań użytkowników, takie dane najczęściej pomijamy w dalszym procesowaniu i możemy zapisać w jakiejś lokalizacji do sprawdzenia przez źródło danych. Można stosować obejścia (np. wymuszanie danego typu kolumny), ale najczęściej naprawia się dane u źródła. Przykład kodu zapisującego do określonej lokalizacji błędne wiersze (zduplikowane) i zwracającego ramkę danych bez dubli:

Podsumowanie

Wykorzystane powyżej funkcje możemy wykorzystać adhocowo w notebookach lub przeprowadzać testy jednostkowe. Jak opakować funkcje w moduły i przeprowadzać w pełni zautomatyzowane testy, opisane jest w następnych artykułach.