Une introduction conviviale à l’analyse de données en Python

Au fil des ans, l’utilisation de python pour la science des données a considérablement augmenté et continue de croître quotidiennement.


La science des données est un vaste domaine d’étude avec de nombreux sous-domaines, dont l’analyse des données est incontestablement l’un des plus importants de tous ces domaines, et quel que soit le niveau de compétence en science des données, il est devenu de plus en plus important de comprendre ou en avoir au moins une connaissance de base.

Qu’est-ce que l’analyse des données?

L’analyse des données est le nettoyage et la transformation d’une grande quantité de données non structurées ou non organisées, dans le but de générer des idées et des informations clés sur ces données qui aideraient à prendre des décisions éclairées.

Il existe différents outils utilisés pour l’analyse des données, Python, Microsoft Excel, Tableau, SaS, etc. mais dans cet article, nous nous concentrerons sur la façon dont l’analyse des données est effectuée en python. Plus précisément, comment cela se fait avec une bibliothèque python appelée Pandas.

Qu’est-ce que les pandas?

Pandas est une bibliothèque Python open source utilisée pour la manipulation et la manipulation des données. Il est rapide et très efficace et dispose d’outils pour charger plusieurs sortes de données en mémoire. Il peut être utilisé pour remodeler, étiqueter une tranche, indexer ou même regrouper plusieurs formes de données.

Structures de données dans Pandas

Il y a 3 structures de données dans Pandas, à savoir;

  • Séries
  • Trame de données
  • Panneau

La meilleure façon de les différencier est de voir l’un comme contenant plusieurs piles de l’autre. Un DataFrame est donc une pile de séries et un Panel est une pile de DataFrames.

Une série est un tableau unidimensionnel

Une pile de plusieurs séries crée un DataFrame bidimensionnel

Une pile de plusieurs DataFrames fait un panneau en 3 dimensions

La structure de données avec laquelle nous travaillerions le plus est le DataFrame bidimensionnel qui peut également être le moyen de représentation par défaut pour certains ensembles de données que nous pourrions rencontrer..

Analyse des données dans Pandas

Pour cet article, aucune installation n’est nécessaire. Nous utiliserions un outil appelé colaboratoire créé par Google. Il s’agit d’un environnement python en ligne pour l’analyse des données, l’apprentissage automatique et l’IA. Il s’agit simplement d’un ordinateur portable Jupyter basé sur le cloud qui est préinstallé avec presque tous les packages python dont vous auriez besoin en tant que data scientist.

Maintenant, dirigez-vous vers https://colab.research.google.com/notebooks/intro.ipynb. Vous devriez voir ci-dessous.

En haut à gauche de la navigation, cliquez sur l’option fichier et cliquez sur l’option «nouveau carnet». Vous verriez une nouvelle page de bloc-notes Jupyter chargée dans votre navigateur. La première chose que nous devons faire est d’importer des pandas dans notre environnement de travail. Nous pouvons le faire en exécutant le code suivant;

importer des pandas en tant que pd

Pour cet article, nous utiliserions un ensemble de données sur les prix des logements pour notre analyse des données. L’ensemble de données que nous utiliserions peut être trouvé ici. La première chose que nous voudrions faire est de charger cet ensemble de données dans notre environnement.

Nous pouvons le faire avec le code suivant dans une nouvelle cellule;

df = pd.read_csv (‘https://firebasestorage.googleapis.com/v0/b/ai6-portfolio-abeokuta.appspot.com/o/kc_house_data.csv?alt=media &jeton = 6a5ab32c-3cac-42b3-b534-4dbd0e4bdbc0 ‘, sep =’, ‘)

Le fichier .read_csv est utilisé lorsque nous voulons lire un fichier CSV et nous avons passé une propriété sep pour montrer que le fichier CSV est délimité par des virgules.

Nous devons également noter que notre fichier CSV chargé est stocké dans une variable df .

Nous n’avons pas besoin d’utiliser la fonction print () dans Jupyter Notebook. Nous pouvons simplement taper un nom de variable dans notre cellule et Jupyter Notebook l’imprimera pour nous.

Nous pouvons essayer cela en tapant df dans une nouvelle cellule et en l’exécutant, il imprimera toutes les données de notre ensemble de données en tant que DataFrame pour nous.

Mais nous ne voulons pas toujours voir toutes les données, parfois nous voulons juste voir les premières données et leurs noms de colonne. Nous pouvons utiliser la fonction df.head () pour imprimer les cinq premières colonnes et df.tail () pour imprimer les cinq dernières. La sortie de l’un ou l’autre des deux se présenterait comme telle;

Nous voudrions vérifier les relations entre ces plusieurs lignes et colonnes de données. La fonction .describe () fait exactement cela pour nous.

 L’exécution de df.describe () donne la sortie suivante;

Nous pouvons immédiatement voir que le .describe () donne la moyenne, l’écart type, les valeurs minimales et maximales et les centiles de chaque colonne du DataFrame. Ceci est très utile en particulier.

Nous pouvons également vérifier la forme de notre DataFrame 2D pour savoir combien de lignes et de colonnes il contient. Nous pouvons le faire en utilisant df.shape qui retourne un tuple au format (lignes, colonnes).

Nous pouvons également vérifier les noms de toutes les colonnes de notre DataFrame en utilisant df.columns.

Et si nous voulons sélectionner une seule colonne et y renvoyer toutes les données? Cette opération est similaire à la découpe d’un dictionnaire. Tapez le code suivant dans une nouvelle cellule et exécutez-le

df [‘prix’]

Le code ci-dessus renvoie la colonne des prix, nous pouvons aller plus loin en l’enregistrant dans une nouvelle variable en tant que telle

prix = df [‘prix’]

Maintenant, nous pouvons effectuer toutes les autres actions qui peuvent être effectuées sur un DataFrame sur notre variable de prix car ce n’est qu’un sous-ensemble d’un DataFrame réel. Nous pouvons faire des choses comme df.head (), df.shape etc…

Nous pourrions également sélectionner plusieurs colonnes en passant une liste de noms de colonnes dans df en tant que tel

data = df [[‘prix’, ‘chambres’]]

Ce qui précède sélectionne les colonnes avec les noms «prix» et «chambres», si nous tapons data.head () dans une nouvelle cellule, nous aurions ce qui suit

La méthode de découpage des colonnes ci-dessus renvoie tous les éléments de ligne de cette colonne, que se passe-t-il si nous voulons renvoyer un sous-ensemble de lignes et un sous-ensemble de colonnes de notre ensemble de données? Cela peut être fait en utilisant .iloc et est indexé d’une manière similaire aux listes python. Nous pouvons donc faire quelque chose comme

df.iloc [50:, 3]

Ce qui renvoie la 3e colonne de la 50e ligne jusqu’à la fin. C’est assez soigné et tout comme les listes de découpage en python.

Faisons maintenant des choses vraiment intéressantes, notre ensemble de données sur les prix des logements a une colonne qui nous indique le prix d’une maison et une autre colonne nous indique le nombre de chambres à coucher de cette maison particulière. Le prix du logement est une valeur continue, il est donc possible que nous n’ayons pas deux maisons qui ont le même prix. Mais le nombre de chambres est quelque peu discret, nous pouvons donc avoir plusieurs maisons avec deux, trois, quatre chambres, etc..

Et si nous voulons obtenir toutes les maisons avec le même nombre de chambres et trouver le prix moyen de chaque chambre discrète? Il est relativement facile de le faire dans les pandas, cela peut être fait comme tel;

df.groupby (‘chambres’) [‘prix’] .mean ()

Ce qui précède regroupe d’abord le DataFrame par les ensembles de données avec un numéro de chambre identique en utilisant la fonction df.groupby (), puis nous lui disons de ne nous donner que la colonne de la chambre et d’utiliser la fonction .mean () pour trouver la moyenne de chaque maison dans l’ensemble de données.

Et si nous voulons visualiser ce qui précède? Nous aimerions pouvoir vérifier comment le prix moyen de chaque numéro de chambre distinct varie? Nous avons juste besoin de chaîner le code précédent à une fonction .plot () en tant que telle;

df.groupby (‘chambres’) [‘prix’] .mean (). plot ()

Nous aurons une sortie qui ressemble à cela;

Ce qui précède nous montre quelques tendances dans les données. Sur l’axe horizontal, nous avons un nombre distinct de chambres (à noter que plus d’une maison peut avoir X nombre de chambres), Sur l’axe vertical, nous avons la moyenne des prix en ce qui concerne le nombre correspondant de chambres sur l’horizontale axe. On remarque maintenant immédiatement que les maisons de 5 à 10 chambres coûtent beaucoup plus cher que les maisons de 3 chambres. Il deviendra également évident que les maisons qui ont environ 7 ou 8 chambres coûtent beaucoup plus cher que celles de 15, 20 ou même 30 pièces..

Des informations comme celles ci-dessus expliquent pourquoi l’analyse des données est très importante, nous sommes en mesure d’extraire des informations utiles des données qui ne sont pas immédiatement ou tout à fait impossibles à remarquer sans analyse.

Données manquantes

Supposons que je participe à une enquête qui consiste en une série de questions. Je partage un lien vers l’enquête avec des milliers de personnes afin qu’elles puissent donner leur avis. Mon objectif ultime est d’exécuter une analyse des données sur ces données afin que je puisse obtenir des informations clés à partir des données.

Maintenant, beaucoup de choses pourraient mal tourner, certains enquêteurs pourraient se sentir mal à l’aise de répondre à certaines de mes questions et de le laisser vide. Beaucoup de gens pourraient faire de même pour plusieurs parties de mes questions d’enquête. Cela pourrait ne pas être considéré comme un problème, mais imaginez si je devais collecter des données numériques dans mon enquête et qu’une partie de l’analyse me demandait d’obtenir la somme, la moyenne ou une autre opération arithmétique. Plusieurs valeurs manquantes conduiraient à beaucoup d’inexactitudes dans mon analyse, je dois trouver un moyen de trouver et de remplacer ces valeurs manquantes par des valeurs qui pourraient être un proche substitut..

Les pandas nous fournissent une fonction pour trouver les valeurs manquantes dans un DataFrame appelé isnull ().

La fonction isnull () peut être utilisée comme telle;

df.isnull ()

Cela renvoie un DataFrame de booléens qui nous indique si les données initialement présentes étaient vraiment manquantes ou faussement manquantes. La sortie se présenterait comme telle;


Nous avons besoin d’un moyen pour pouvoir remplacer toutes ces valeurs manquantes, le plus souvent le choix des valeurs manquantes peut être considéré comme nul. Parfois, cela peut être considéré comme la moyenne de toutes les autres données ou peut-être la moyenne des données qui l’entourent, selon le scientifique des données et le cas d’utilisation des données analysées.

Pour remplir toutes les valeurs manquantes dans un DataFrame, nous utilisons la fonction .fillna () utilisée comme telle;

df.fillna (0)

Dans ce qui précède, nous remplissons toutes les données vides avec la valeur zéro. Il pourrait aussi bien s’agir de tout autre nombre que nous spécifions.

L’importance des données ne peut pas être surestimée, elle nous aide à obtenir des réponses directement à partir de nos données elles-mêmes!. L’analyse des données, selon eux, est le nouveau pétrole pour les économies numériques.

Tous les exemples de cet article peuvent être trouvés ici.

Pour en savoir plus en profondeur, consultez Cours en ligne d’analyse de données avec Python et Pandas.

MOTS CLÉS:

  • Python

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map