Python, pandas et résolution de trois problèmes du monde d'Excel

Excel est un outil d'analyse de données extrêmement courant. Il est facile d'apprendre à l'utiliser, il se trouve sur presque tous les ordinateurs et celui qui le maîtrise peut résoudre des problèmes assez complexes avec lui. Python est souvent considéré comme un outil dont les capacités sont presque illimitées, mais qui est plus difficile à maîtriser qu'Excel. L'auteur du document, dont nous publions la traduction aujourd'hui, souhaite parler de la solution utilisant Python des trois tâches qui sont généralement résolues dans Excel. Cet article est une petite introduction à Python pour ceux qui connaissent bien Excel.



Chargement des données


Commençons par importer la bibliothèque Python pandaset charger les données dans des blocs de données stockés sur des feuilles saleset des statesclasseurs Excel. Nous donnerons les mêmes noms aux trames de données correspondantes.

import pandas as pd
sales = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'sales')
states = pd.read_excel('https://github.com/datagy/mediumdata/raw/master/pythonexcel.xlsx', sheet_name = 'states')

Nous allons maintenant utiliser la méthode du .head()bloc de données salespour afficher les éléments au début du bloc de données:

print(sales.head())

Comparez ce qui sera affiché avec ce que vous pouvez voir dans Excel.


Comparaison de l'apparence de la sortie des données dans Excel avec l'apparence de la sortie des données du bloc de données pandas

Ici, vous pouvez voir que les résultats de la visualisation des données du bloc de données sont très similaires à ce que vous pouvez voir dans Excel. Mais il existe des différences très importantes:

  • La numérotation des lignes dans Excel commence à 1, et dans les pandas, le numéro (index) de la première ligne est 0.
  • Dans Excel, les colonnes ont des lettres commençant par une lettre Aet dans pandas, les noms des colonnes correspondent aux noms des variables correspondantes.

Nous continuerons d'étudier les capacités des pandas qui nous permettent de résoudre les problèmes qu'Excel résout généralement.

Implémentation de la fonctionnalité Excel Excel IF en Python


Excel a une fonction très pratique IFqui permet, par exemple, d'écrire quelque chose dans une cellule, basée sur la vérification de ce qui se trouve dans une autre cellule. Supposons que vous souhaitiez créer une nouvelle colonne dans Excel, dont les cellules nous indiqueront si les valeurs dans les cellules correspondantes de la colonne dépassent 500 B. Dans Excel, Evous pouvez affecter un en-tête à une telle colonne (dans notre cas, une colonne ) en MoreThan500écrivant le texte correspondant dans la cellule E1. Après cela, dans la cellule E2, vous pouvez saisir ce qui suit:

=IF([@Sales]>500, "Yes", "No")


Utilisation de la fonction IF dans Excel

Afin de faire de même avec les pandas, vous pouvez utiliser la compréhension de liste:

sales['MoreThan500'] = ['Yes' if x > 500 else 'No' for x in sales['Sales']]


Inclusions de liste en Python: si la valeur actuelle est supérieure à 500, Yes est inclus dans la liste; sinon, les

inclusions de No List sont un excellent outil pour résoudre de tels problèmes, ce qui simplifie le code en réduisant le besoin de constructions complexes comme if / else. Le même problème peut être résolu avec if / else, mais l'approche proposée fait gagner du temps et rend le code un peu plus propre. Les détails sur l'inclusion dans la liste peuvent être trouvés ici .

Implémentation de la fonctionnalité Excel VLOOKUP en Python


Dans notre jeu de données, sur l'une des feuilles Excel, il y a les noms des villes et de l'autre, les noms des États et des provinces. Comment savoir exactement où se trouve chaque ville? Une fonction Excel convient à cela VLOOKUP, avec laquelle vous pouvez lier les données de deux tables. Cette fonction fonctionne sur le principe de la jointure gauche, lorsque chaque enregistrement de l'ensemble de données situé sur le côté gauche de l'expression est sauvegardé. À l'aide de la fonction VLOOKUP, nous suggérons que le système recherche une valeur spécifique dans une colonne donnée d'une feuille spécifiée, puis renvoie une valeur qui est un nombre spécifié de colonnes à droite de la valeur trouvée. Voici à quoi ça ressemble:

=VLOOKUP([@City],states,2,false)

Nous définissons l'en sales-tête de colonne sur la feuille Florsque nous Stateutilisons la fonction VLOOKUPpour remplir les cellules de cette colonne avec les noms des États et des provinces dans lesquels les villes sont situées.


Utilisation de la fonction RECHERCHEV dans Excel

En Python, vous pouvez faire de même en utilisant la méthodemergedes pandas. Il prend deux trames de données et les combine. Pour résoudre ce problème, nous avons besoin du code suivant:

sales = pd.merge(sales, states, how='left', on='City')

Analysons-le:

  1. Le premier argument de la méthode mergeest la trame de données d'origine.
  2. Le deuxième argument est le bloc de données dans lequel nous recherchons des valeurs.
  3. L'argument howindique exactement comment nous voulons joindre les données.
  4. L'argument onpointe vers la variable par laquelle la connexion doit être effectuée (ici, vous pouvez toujours utiliser les arguments left_onet right_on, si les données qui nous intéressent dans différentes trames de données sont nommées différemment).

Tableaux récapitulatifs


Les tableaux croisés dynamiques sont l'une des fonctionnalités les plus puissantes d'Excel. Ces tableaux vous permettent d'extraire rapidement des informations précieuses de grands ensembles de données. Créez un tableau croisé dynamique Excel qui affiche des informations sur les ventes totales pour chaque ville.


Création d'un tableau croisé dynamique dans Excel

Comme vous pouvez le voir, pour créer un tel tableau, faites simplement glisser le champCitydans la sectionRowset le champSalesdans la sectionValues. Après cela, Excel affichera automatiquement le total des ventes pour chaque ville.

Afin de créer le même tableau croisé dynamique dans pandas, vous devrez écrire le code suivant:

sales.pivot_table(index = 'City', values = 'Sales', aggfunc = 'sum')

Analysons-le:

  1. Ici, nous utilisons une méthode sales.pivot_table, indiquant aux pandas que nous voulons créer un tableau croisé dynamique basé sur un bloc de données sales.
  2. L'argument indexpointe vers la colonne par laquelle nous voulons agréger les données.
  3. L'argument valuesindique quelles valeurs nous allons agréger.
  4. L'argument aggfuncspécifie la fonction que nous voulons utiliser dans le traitement des valeurs (ici , vous pouvez toujours utiliser les fonctions mean, max, minet ainsi de suite).

Sommaire


À partir de ce matériel, vous avez appris comment importer des données Excel dans des pandas, comment implémenter les capacités des fonctions Excel IFet des outils Python pandasVLOOKUP, ainsi que la façon de reproduire les fonctionnalités des tableaux croisés dynamiques Excel à l'aide de pandas. Peut-être que maintenant vous vous demandez pourquoi vous devriez utiliser des pandas si vous pouvez faire la même chose dans Excel. Il n'y a pas de réponse unique à cette question. Python vous permet de créer du code qui peut être affiné et recherché en profondeur. Ce code peut être réutilisé. Python peut décrire des schémas d'analyse de données très complexes. Et les fonctionnalités d'Excel ne sont probablement suffisantes que pour la recherche de données à plus petite échelle. Si vous n'avez utilisé qu'Excel jusqu'à présent, je vous recommande d'essayer Python et pandas et de découvrir ce que vous pouvez faire.

Quels outils utilisez-vous pour analyser les données?

, , iPhone. , .


All Articles