Garder vos données si fraîches et si propres

Nov 29 2022
Une liste de lecture pour Squeaky Clean Data J'ai consommé beaucoup de contenu de science des données et d'analyse, et l'un des principaux points à retenir que j'ai trouvé est qu'il n'y a aucun modèle que vous pouvez créer qui donnera des informations exploitables si vous l'alimentez avec des données inutiles. Un de mes instructeurs soutient que la première chose que les débutants doivent apprendre est le principe GIGO.

Une liste de lecture pour des données parfaitement propres

Photo de Marcela Laskoski sur Unsplash

J'ai consommé beaucoup de contenu de science des données et d'analyse, et l'une des principales conclusions que j'ai trouvées est qu'il n'y a pas de modèle que vous pouvez créer qui fournira des informations exploitables si vous l'alimentez avec des données inutiles. Un de mes instructeurs soutient que la première chose que les débutants doivent apprendre est le principe GIGO. Eh bien, il le dirait plus succinctement et dirait qu'il vaudrait mieux passer 80% de votre temps à nettoyer vos données au lieu de construire un modèle brillant que vous alimentez Garbage.

Le principe GIGO (Garbage In = Garbage Out) soutient que les modèles sont semblables aux humains et sont ce qu'ils consomment. De plus, si vous alimentez votre modèle avec des données non raffinées, vous pouvez vous attendre à ce que vos métriques soient atténuées par les inexactitudes qui s'accumulent le long de votre pipeline de données.

Dans cet esprit, j'ai créé une liste de lecture pour garder mon esprit concentré lors du nettoyage des données et j'ai pensé que cela pourrait vous être utile si vous êtes novice dans l'exploration des données comme moi.

Commençons par les données au .csvformat de fichier, et nous avons également importé toutes les bibliothèques et packages de visualisation nécessaires pour créer un modèle.

Donc, ma première étape typique consiste à créer un bloc de données appelé dfque j'utilise pd.read_csvpour créer.

df = pd.read_csv('myfile.csv', index_col = 0)

Une fois que j'ai une trame de données initiale, je nettoie les données. La chanson initiale de ma liste que j'écoute généralement lors de la lecture du .csvfichier et de la création de ma trame de données initiale est :

L'or de Jill Scott

Données de nettoyage

Pour nettoyer les données, je passe souvent beaucoup de temps :

  • Suppression des doublons - les doublons occupent de l'espace, peuvent ralentir la mise en œuvre des modèles et peuvent conduire à des informations erronées.
  • Remplacer les valeurs manquantes - bien qu'il n'existe pas de moyen optimal de gérer les valeurs manquantes, apprendre à gérer les valeurs manquantes est une compétence que les passionnés de données en herbe devraient développer.
  • Remplacer les valeurs d'espace réservé - des espaces réservés tels que : '-,' NAN,' ?' et '#' gâchent systématiquement les travaux et entraînent des erreurs visibles et invisibles dans l'analyse. Si vous êtes chanceux, les messages d'erreur abondent ; si vous êtes extrêmement malchanceux, vous le remarquez après avoir essayé de visualiser la corrélation entre les variables dépendantes et indépendantes et obtenez des graphiques sensiblement improbables.
  • Conversion des types de données en types de données plus appropriés - Souvent, cela apparaît lorsque j'ai naïvement traité une variable catégorique (pensez à quelque chose avec un nombre fixe de valeurs) comme si elle était continue (quelque chose qui peut avoir n'importe quelle valeur entre un minimum et un maximum) .

Je regarde la forme du bloc de données, j'ai à peu près besoin de savoir avec combien de lignes et de colonnes je travaille et j'ai besoin de me battre pour la soumission. Comme je joue avec le chanteur légendaire de Philadelphie, en Pennsylvanie, j'utilise ce qui suit :

  • df.shape— Revoir les dimensions des données
  • df.info()— Examiner un résumé concis des données
  • df.head()— Passez en revue les cinq premières lignes des données (vous pouvez augmenter ce nombre en ajoutant un nombre n à l'intérieur des parenthèses ex df.head(10)donnera les dix premières lignes des données.

Après avoir appris les fonctionnalités de base des données, je vérifie la totalité du bloc de données pour les espaces réservés, souvent avec quelque chose qui ressemble à ce qui suit :

df.isin['?', '#', 'NaN', 'null', 'N/A', '-']).any()

C'est généralement à ce moment-là que je commence à écouter des artistes reggae de la vieille école comme Baby Cham, Capleton et Sean Paul, qui me rappellent la nostalgie de mes projets de lycée dans le laboratoire de physique avec M. Green, qui avait la meilleure bande-son reggae rythmique de la fin des années 90 sur le côté est de New Providence sans exception.

Examen des modifications

Après avoir identifié les espaces réservés, j'utilise des étapes comme celle-ci lors du brouillage du reggae à l'ancienne :

df['column_with_placeholder'] = pd.to_numeric(df['column_with_placeholder'], errors = "coerce")

Garder le rythme

Je passe généralement aux bourrages sud sales tout en supprimant les doublons et en décidant si je vais supprimer des lignes du bloc de données avec des valeurs nulles ou les remplacer par la médiane ou le mode. Mes artistes préférés dans ce genre sont de la Dungeon Family.

Ma playlist ressemble généralement à ceci :

  1. Jill Scott - Or
  2. Baby Cham avec Alicia Keys — Ghetto Story
  3. Wayne Wonder - Pas de lâcher prise
  4. Sean Paul — Température
  5. Beenie Man - Romie
  6. Famille de donjon - Excalibur
  7. Erykah Badu - Encore et encore
  8. Outkast - Hé toi !
  9. Outkast — Rosa Parks
  10. Lauryn Hill — Facteur Ex

J'aimerais intégrer plus de flexibilité et de variété dans ma liste de lecture :

  • Comment puis-je utiliser la science des données pour créer une meilleure liste de lecture ?
  • Je travaille actuellement sur la création d'un outil de planification de voyage pour m'aider lors de mon prochain voyage aux Bahamas afin de célébrer notre 50e anniversaire d'indépendance.

Si vous souhaitez être mis à jour avec mes derniers articles, suivez-moi sur Medium . Vous pouvez également vous connecter avec moi sur LinkedIn ou m'envoyer un e-mail à [email protected].