Recherche de site Web

10 Python One-Liners qui stimuleront votre flux de travail de science des données


Python est le langage de programmation de science des données le plus populaire, car il est polyvalent et bénéficie d'un grand soutien de la communauté. Avec une telle utilisation, il existe de nombreuses façons d'améliorer notre flux de travail de science des données que vous ne connaissez peut-être pas.

Dans cet article, nous explorerons dix solutions Python différentes qui stimuleraient votre travail en science des données.

Quels sont-ils? Jetons un coup d'oeil.

1. Gestion efficace des données manquantes

Les données manquantes sont une occurrence constante dans les ensembles de données. Cela peut se produire pour diverses raisons, allant de la mauvaise gestion des données aux conditions naturelles et au-delà. Néanmoins, nous devons décider comment gérer les données manquantes.

Certains entreraient dans la catégorie des données manquantes ou les laisseraient tous tomber. Cependant, nous choisissons parfois de remplir les données manquantes.

Si nous voulons remplir les données manquantes, nous pouvons utiliser la méthode Pandas fillna. Il est facile à utiliser car il nous suffit de transmettre la valeur que nous voulons remplir en remplacement de la valeur manquante, mais nous pouvons le rendre plus efficace.

Voyons le code ci-dessous.

df.fillna({col: df[col].median() for col in df.select_dtypes(include='number').columns} |
          {col: df[col].mode()[0] for col in df.select_dtypes(include='object').columns}, inplace=True)

En combinant le fillna avec la condition, nous pouvons remplir les données numériques manquantes avec la médiane et les données catégoriques manquantes avec le mode.

Avec une seule ligne, vous pouvez rapidement remplir toutes les différentes données manquantes dans les autres colonnes.

2. Suppression des fonctionnalités hautement corrélées

La multicolinéarité se produit lorsque notre ensemble de données contient de nombreuses variables indépendantes fortement corrélées les unes aux autres plutôt qu'avec la cible. Cela a un impact négatif sur les performances du modèle, nous souhaitons donc conserver moins de fonctionnalités corrélées.

Nous pouvons combiner la fonctionnalité de corrélation Pandas avec la sélection conditionnelle pour sélectionner rapidement les fonctionnalités les moins corrélées. Par exemple, voici comment choisir les caractéristiques qui ont la corrélation de Pearson maximale avec les autres en dessous de 0,95.

df = df.loc[:, df.corr().abs().max() < 0.95]

Essayer les caractéristiques de corrélation et le seuil pour voir si le modèle de prédiction est bon ou non.

3. Appliquer la colonne conditionnelle

Créer une nouvelle colonne avec plusieurs conditions peut parfois s'avérer compliqué, et la ligne pour les exécuter peut être longue. Cependant, nous pouvons utiliser la méthode apply des Pandas pour utiliser des conditions spécifiques lors du développement de la nouvelle fonctionnalité tout en utilisant plusieurs valeurs de colonnes.

Par exemple, voici des exemples de création d'une nouvelle colonne où les valeurs sont basées sur la condition des autres valeurs de colonne.

df['new_col'] = df.apply(lambda x: x['A'] * x['B'] if x['C'] > 0 else x['A'] + x['B'], axis=1)

Vous pouvez essayer une autre condition qui répond à vos besoins.

4. Trouver un élément commun et différent

Python fournit de nombreux types de données intégrés, notamment Set. Le type de données Set est constitué de données uniques qui représentent une liste non ordonnée de données mais uniquement avec des éléments uniques. Il est souvent utilisé pour de nombreuses opérations sur les données, notamment la recherche des éléments communs.

Par exemple, nous avons l'ensemble suivant :

set1 = {"apple", "banana", "cherry", "date", "fig"}
set2 = {"cherry", "date", "elderberry", "fig", "grape"}

Ensuite, nous voulons trouver l’élément commun entre les deux ensembles. Nous pouvons utiliser la méthode suivante.

set1.intersection(set2)

Sortir :

{'cherry', 'date', 'fig'}

C’est un moyen simple mais utile de trouver l’élément commun. À l’inverse, on peut également retrouver les éléments qui sont différents au sein des deux ensembles.

set1.difference(set2)

Sortir :

{'apple', 'banana'}

Essayez de les utiliser dans votre flux de données lorsque vous devez trouver les éléments communs et différents.

5. Masques booléens pour le filtrage

Lorsque nous travaillons avec le tableau NumPy et son objet dérivé, nous souhaitons parfois filtrer les données en fonction de nos besoins. Dans ce cas, nous pouvons créer un masque booléen pour filtrer les données en fonction de la condition booléenne que nous avons définie.

Disons que nous avons la liste de données suivante.

import numpy as np
data = np.array([10, 15, 20, 25, 30, 35, 40, 45, 50])

Ensuite, nous pouvons utiliser le masque booléen pour filtrer les données souhaitées. Par exemple, nous voulons uniquement des nombres pairs.

data[(data % 2 == 0)]

Sortir :

array([10, 20, 30, 40, 50])

C'est également la base du filtrage Pandas ; cependant, un masque booléen peut être plus polyvalent car il fonctionne également dans le tableau NumPy.

6. Occurrence du décompte de liste

Lorsque nous travaillons avec une liste ou toute autre donnée comportant plusieurs valeurs, il arrive parfois que nous souhaitions connaître la fréquence de chaque valeur. Dans ce cas, nous pouvons utiliser la fonction compteur pour les compter automatiquement.

Par exemple, pensez à avoir la liste suivante.

data = [10, 10, 20, 20, 30, 35, 40, 40, 40, 50]

Ensuite, nous pouvons utiliser la fonction compteur pour calculer la fréquence.

from collections import Counter
Counter(data)

Sortir :

Counter({10: 2, 20: 2, 30: 1, 35: 1, 40: 3, 50: 1})

Le résultat est un dictionnaire pour l'occurrence de comptage. Utilisez-les lorsque vous avez besoin d'un calcul de fréquence rapide.

7. Extraction numérique du texte

Les expressions régulières (Regex) sont des listes de caractères définies qui correspondent à un modèle dans le texte. Ils sont généralement utilisés lorsque nous souhaitons effectuer une manipulation de texte spécifique, et c’est précisément ce que nous pouvons faire avec ce one-liner.

Dans l'exemple ci-dessous, nous pouvons utiliser une combinaison de Regex et de map pour extraire des nombres du texte.

import re
list(map(int, re.findall(r'\d+', "Sample123Text456")))

Sortir :

[123, 456]

L'exemple ci-dessus ne fonctionne que pour les données entières, mais en apprendre davantage sur les expressions régulières peut vous donner la puissance et la flexibilité nécessaires pour adapter cette ligne unique à plusieurs cas d'utilisation.

8. Aplatir la liste imbriquée

Lorsque nous préparons nos données pour l'analyse, nous pouvons rencontrer des données de liste contenant une liste dans la liste, que nous pouvons appeler imbriquée. Si nous trouvons quelque chose comme ça, nous souhaiterons peut-être l'aplatir pour une analyse ou une visualisation plus approfondie des données.

Par exemple, disons que nous avons la liste imbriquée suivante.

nested_list = [
    [1, 2, 3],
    [4, 5],
    [6, 7, 8, 9]
]

On peut alors aplatir la liste avec le code suivant.

sum(nested_list, [])

Sortir :

[1, 2, 3, 4, 5, 6, 7, 8, 9]

Avec cette liste de données unidimensionnelle, vous pouvez analyser plus en profondeur et de manière plus simple si nécessaire.

9. Liste au dictionnaire

Avez-vous déjà été confronté à une situation où vous disposez de plusieurs listes et souhaitez combiner les informations sous forme de dictionnaire ? Par exemple, le cas d'utilisation peut être lié à des fins de mappage ou de codage de fonctionnalités.

Dans ce cas, nous pouvons convertir la liste dont nous disposons en dictionnaire en utilisant la fonction zip.

Par exemple, nous avons la liste suivante.

fruit = ['apple', 'banana', 'cherry']
values = [100, 200, 300]

Avec la combinaison de zip et dict, nous pouvons combiner les deux listes ci-dessus en une seule.

dict(zip(fruit, values))

Sortir :

{'apple': 100, 'banana': 200, 'cherry': 300}

Il s'agit d'un moyen rapide de combiner les deux éléments de données en une seule structure, qui peut ensuite être utilisée pour un prétraitement ultérieur des données.

10. Fusion de dictionnaires

Lorsque nous disposons d'un dictionnaire contenant les informations dont nous avons besoin pour le prétraitement des données, nous devons les combiner. Par exemple, nous avons effectué l'action de liste vers dictionnaire comme ci-dessus et nous avons obtenu les dictionnaires suivants :

fruit_mapping = {'apple': 100, 'banana': 200, 'cherry': 300}
furniture_mapping = {'table': 100, 'chair': 200, 'sofa': 300}

Ensuite, nous souhaitons les combiner car ces informations pourraient être importantes dans leur ensemble. Pour ce faire, nous pouvons utiliser le one-liner suivant.

{**fruit_mapping, **furniture_mapping }
Output&gt;&gt;
{'apple': 100,
 'banana': 200,
 'cherry': 300,
 'table': 100,
 'chair': 200,
 'sofa': 300}

Comme vous pouvez le constater, les deux dictionnaires sont devenus un seul dictionnaire. Ceci est très utile dans de nombreux cas qui nécessitent de regrouper des données.

Conclusion

Dans cet article, nous avons exploré dix solutions Python différentes qui amélioreraient votre flux de travail en science des données. Ces one-liners se sont concentrés sur :

  1. Gestion efficace des données manquantes
  2. Suppression de fonctionnalités hautement corrélées
  3. Appliquer la colonne conditionnelle
  4. Trouver un élément commun et différent
  5. Masques booléens pour le filtrage
  6. Occurrence du nombre de listes
  7. Extraction numérique à partir du texte
  8. Aplatir la liste imbriquée
  9. Liste au dictionnaire
  10. Fusion de dictionnaires

J'espère que cela a aidé!

Articles connexes