Voici un aperçu rapide de chaque méthode et de ce qu'elle fait : ","read_csv()",": Charge les données d'un fichier CSV dans un DataFrame Pandas.","tête()",": Affiche les premières lignes du DataFrame.","info()",": Fournit un résumé concis du DataFrame, y compris les types de colonnes et les valeurs manquantes.","décrire()",": Génère des statistiques descriptives pour les colonnes numériques.","isnull()",": Identifie les données manquantes dans le DataFrame.","dropna()",": Supprime les lignes ou les colonnes dont les données sont manquantes.","fillna()",": Remplace les données manquantes par les valeurs spécifiées.","groupby()",": Regroupe les données sur la base d'une ou plusieurs colonnes et applique des fonctions d'agrégation.","sort_values()",": Trie le DataFrame par une ou plusieurs colonnes.","appliquer()",": Applique des fonctions personnalisées aux lignes ou aux colonnes du DataFrame.","Conditions préalables"," Tout d'abord, assurez-vous que Python est installé sur votre machine. Si ce n'est pas le cas, vous pouvez le télécharger à partir de ce lien.
Une fois Python installé, vérifiez que la bibliothèque Pandas est installée. Si ce n'est pas le cas, vous pouvez facilement l'ajouter en utilisant la commande suivante : ","pip install pandas"," Pour nos exemples, nous utiliserons l'ensemble de données fictives sur l'immobilier suivant : ","PropertyID","Localisation","Chambres à coucher","Salles de bains","Prix","Pieds carrés","Date d'inscription","101","New York (en anglais)","3","2","750000","1800","2023-05-15","102","San Francisco","1","850000","1400","2023-06-01","103","Los Angeles","4","2500","2023-04-10","104","Chicago (en anglais)","650000","1700","105","Miami","5","1200000","3500","2023-03-22","106","Houston","450000","2000","2023-07-01","Les 10 meilleures fonctions et méthodes Pandas","1. read_csv() : Charge les données d'un fichier CSV dans un DataFrame Pandas."," La première étape de l'utilisation de pandas consiste à charger vos données pour les préparer au traitement ou à l'analyse. L'une des méthodes les plus courantes pour importer des données dans un DataFrame pandas est la fonction read_csv(). ","Exemple de code :","import pandas as pd\n# Charger l'ensemble de données dans un DataFrame Pandas\nfile_path = \"real_estate_listings.csv\" # Remplacer par votre chemin de fichier réel\n\n# Créer le DataFrame\ndf = pd.read_csv(file_path)","comme pd","pandas.read_csv()","pd.read_csv()"," Nous commençons par importer la bibliothèque pandas. En utilisant "," est une convention courante parmi les développeurs pour simplifier le code. Par exemple, au lieu d'écrire ","nous pouvons simplement utiliser ","ce qui rend le code plus concis et plus facile à lire. ","read_csv"," Ensuite, indiquez le chemin d'accès au fichier CSV que vous souhaitez charger dans un DataFrame Pandas. Créez ensuite une variable et utilisez la méthode "," pour charger le fichier dans le DataFrame. ","Paramètres clés :"," Examinons à présent quelques paramètres importants qui découlent de cette méthode : ","délimiteur :"," Spécifiez le délimiteur utilisé dans le fichier CSV (par exemple, ,, ;, \\t).","df = pd.read_csv(file_path, delimiter=',')","index_col",": Dans notre tableau, chaque annonce immobilière est identifiée par un ID qui se trouve dans le champ \"","\". Pour s'assurer que pandas utilise cette colonne comme identifiant unique pour chaque propriété, nous pouvons la définir explicitement comme colonne ID. Sinon, pandas générera et attribuera automatiquement ses propres valeurs d'identification à chaque liste.","df = pd.read_csv(file_path, index_col='PropertyID')","usecols",": Si votre fichier CSV contient de nombreuses colonnes mais que vous n'avez besoin que de quelques unes d'entre elles, pandas vous permet d'y parvenir facilement à l'aide d'un paramètre spécifique.","df = pd.read_csv(file_path, usecols=['Location', 'Price', 'Bedrooms'])","2. head() et tail() : Inspecter les données","queue()"," Maintenant que les données sont chargées dans le DataFrame, nous pouvons commencer à les explorer. Pour ce faire, Pandas fournit deux méthodes très pratiques : "," et ",". Ces méthodes sont essentielles pour inspecter rapidement les premières ou les dernières lignes de votre ensemble de données. ","head(): Cette méthode affiche par défaut les 5 premières lignes du jeu de données. Elle est particulièrement utile pour vérifier que les données ont été chargées correctement et pour contrôler leur structure.","tail(): Cette méthode fonctionne de la même manière que head(), mais affiche les dernières lignes. Elle est utile pour examiner la fin de l'ensemble de données, en particulier pour vérifier si les données sont complètes ou si les enregistrements suivants ont des valeurs manquantes.","# Afficher les 5 premières lignes\nprint(df.head())\n# Afficher les 3 dernières lignes\nprint(df.tail(3))\n"," Sortie de ",": ","3. info() - Comprendre la structure du DataFrame"," La fonction info() fournit un résumé concis du DataFrame. Elle inclut des détails tels que : ","Le nombre de lignes et de colonnes.","Noms des colonnes et leurs types de données.","Le nombre de valeurs non nulles dans chaque colonne."," Cette méthode est utile pour comprendre rapidement la structure de votre ensemble de données et pour repérer des problèmes tels que des valeurs manquantes ou des types de données incorrects. ","# Obtenir un résumé concis du DataFrame\nprint(df.info())"," Le code ci-dessus produit le résultat suivant : ","<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 6 entries, 0 to 5\nData columns (total 7 columns):\n# Column Non-Null Count Dtype \n--- ------ -------------- ----- \n0 PropertyID 6 non-null int64 \n1 Location 6 non-null object\n2 Bedrooms 6 non-null int64 \n3 Bathrooms 6 non-null int64 \n4 Price 5 non-null float64\n5 SquareFootage 6 non-null int64 \n6 ListingDate 5 non-null object\ndtypes: float64(1), int64(4), object(2)\nmemory usage: 464.0+ bytes\n","4. describe() : Générer des statistiques sommaires"," Le "," permet d'obtenir un résumé rapide des principales données statistiques, telles que ","moyen",", ","écart-type","centiles","et bien d'autres choses encore. Par défaut, "," fonctionne avec des données numériques mais peut également traiter des données catégorielles, offrant ainsi des informations personnalisées basées sur le type de données. ",": Une liste de nombres entre 0 et 1, spécifiant les percentiles à renvoyer. La valeur par défaut est None, qui renvoie les 25e, 50e et 75e centiles. Plus d'informations ","ici",".","inclure",": Liste des types de données à inclure dans le résumé. Vous pouvez spécifier des types de données tels que int, float, object (pour les chaînes de caractères), etc. La valeur par défaut est None, ce qui signifie que tous les types numériques sont inclus.","exclure","Aucun",": Une liste de types de données à exclure du résumé. Ce paramètre est également "," par défaut, ce qui signifie qu'aucun type n'est exclu.","print(df.describe())"," La sortie du code est la suivante : "," PropertyID Emplacement Chambres ... Prix Pieds carrés Date d'inscription\nnombre 6.000000 6 6.000000... 5.000000e+00 6.000000 5\nunique NaN 6 NaN ... NaN NaN 5\ntop NaN New York NaN ... NaN NaN 2023-05-15\nfreq NaN 1 NaN ... NaN NaN 1\nmoyenne 103.500000 NaN 3.500000... 7.800000e+05 2150.000000 NaN\nstd 1.870829 NaN 1.048809... 2.774887e+05 755.645419 NaN\nmin 101.000000 NaN 2.000000... 4.500000e+05 1400.000000 NaN\n25% 102.250000 NaN 3.000000... 6.500000e+05 1725.000000 NaN\n50% 103.500000 NaN 3.500000... 7.500000e+05 1900.000000 NaN\n75% 104.750000 NaN 4.000000... 8.500000e+05 2375.000000 NaN\nmax 106.000000 NaN 5.000000... 1.200000e+06 3500.000000 NaN\n","Explication de chaque statistique","compte = 6","Exemple : "," pour ","indiquant que toutes les lignes contiennent des données valides.","Compter",": Le nombre d'entrées non manquantes pour chaque colonne.","moyenne = 3,5","indiquant une moyenne de ","3,5 chambres à coucher"," par propriété.","Moyenne",": La valeur moyenne de la colonne.","std = 1,048809","Cela signifie que le nombre de chambres à coucher varie modérément.","Std",": L'écart-type, qui montre la dispersion des valeurs par rapport à la moyenne.","min = 2","max = 5","Min/Max",": La plus petite et la plus grande valeur.","25%",": Valeur en dessous de laquelle se situent 25% des données (premier quartile).","50%",": La valeur médiane.","75%",": Valeur en dessous de laquelle se situent 75% des données (troisième quartile).","25%, 50%, 75% (Quartiles)",": Ils représentent la diffusion des données :","5. isnull() : Identifier les données manquantes","Vrai","NaN","Faux","somme()"," permet d'identifier les données manquantes dans un DataFrame. Elle renvoie un DataFrame de la même forme que l'original, avec des données "," lorsque les données sont manquantes "," et "," autrement. Elle est couramment utilisée avec d'autres fonctions telles que "," pour compter les valeurs manquantes dans les colonnes ou les lignes. ","# Identifier les valeursmanquantes\nprint(df.isnull())\n# Compter les valeurs manquantes pour chaque colonne\nprint(df.isnull().sum())\n","df.isnull()"," Sortie : "," Identifiant de propriété Emplacement Salle de bains Salle de bain Prix Pieds carrés Date d'inscription\n0 Faux Faux Faux Faux Faux Faux Faux\n1 Faux Faux Faux Faux Faux Faux Faux\n2 Faux Faux Faux Faux Vrai Faux Faux\n3 Faux Faux Faux Faux Faux Faux Vrai\n4 Faux Faux Faux Faux Faux Faux Faux\n5 Faux Faux Faux Faux Faux Faux Faux\n","df.isnull().sum()","PropertyID 0\nEmplacement 0\nChambres 0\nSalle de bain 0\nPrix 1\nPieds carrés 0\nListingDate 1\ndtype: int64\n","6. dropna() : Supprimer les données manquantes"," La fonction supprime ","rangs"," ou ","colonnes"," avec données manquantes "," du DataFrame. Par défaut, il supprime les lignes contenant des valeurs manquantes. Vous pouvez personnaliser son comportement pour ne supprimer que les colonnes, ou pour supprimer les lignes/colonnes dont toutes les valeurs ou un sous-ensemble spécifique de valeurs sont manquantes. ","# Supprimer les lignes contenant des valeurs manquantes \ndf_dropped_rows = df.dropna()\nprint(df_dropped_rows)\n\n# Supprimez les colonnes contenant des valeurs manquantes \ndf_dropped_columns = df.dropna(axis=1)\nprint(df_dropped_columns)\n"," Voici à quoi ressemble le DataFrame après avoir supprimé tous les "," contenant "," valeurs : "," Voici le cadre de données avec "," supprimées. ","7. fillna() : Remplacer les données manquantes"," remplace les données manquantes "," avec les valeurs spécifiées. L'outil pandas "," gère et supprime efficacement les valeurs nulles d'un DataFrame, tandis que la méthode "," offre une solution flexible pour remplacer les "," avec une valeur spécifiée de votre choix. Cette méthode offre une approche flexible de la gestion des données manquantes en vous permettant de combler les lacunes à l'aide d'une valeur fixe, la ","médiane","mode","ou d'autres statistiques calculées. ","# Remplir les valeurs manquantes de la colonne \"Prix\" avec le prix moyen df['Prix'] = \ndf['Prix'].fillna(df['Prix'].mean()) \nprint(df)"," La sortie du code montre que le "," a été remplacée avec succès par le prix moyen. ","780000"," La colonne contient également un "," valeur. Au lieu d'effectuer un calcul, nous pouvons simplement utiliser un espace réservé tel que \"","inconnue",". Voici comment procéder ; ","# Remplir les valeurs manquantes de la colonne \"ListingDate\" avec un caractère générique\ndf['ListingDate'] = df['ListingDate'].fillna('Unknown')\nprint(df)\n"," Le cadre de données se présente désormais comme suit : ","Inconnu","8. groupby() : Grouper et agréger des données"," La fonction groupby() de Pandas est un outil polyvalent et puissant qui permet de diviser un DataFrame en groupes sur la base d'une ou plusieurs colonnes, ce qui permet une analyse et une agrégation efficaces des données.
Elle fonctionne selon le principe \" diviser-appliquer-combiner\":
d'abord, les données sont divisées en groupes ;
ensuite, une fonction spécifiée est appliquée à chaque groupe ;
enfin, les résultats sont combinés dans un nouveau DataFrame.
Cette approche rationalisée simplifie les tâches complexes de manipulation des données et améliore l'efficacité de l'analyse. "," Par exemple, vous pouvez calculer le prix moyen des biens par emplacement ou compter le nombre d'annonces par catégorie de chambre. ","# Regroupement par \"lieu\" et calcul du prix moyen\navg_price_by_location = df.groupby('Location')['Price'].mean()\nprint(avg_prix_par_lieu)\n# Grouper par 'Chambres' et calculer le total des pieds carrés\ntotal_sqft_by_bedrooms = df.groupby('Bedrooms')['SquareFootage'].sum()\nprint(total_sqft_by_bedrooms)\n# Grouper par plusieurs colonnes et calculer le nombre\ncount_by_location_bedrooms = df.groupby(['Location', 'Bedrooms']).size()\nprint(count_by_location_bedrooms)\n","Prix moyen par lieu :","Lieu de travail\nChicago 650000.0\nHouston 450000.0\nLos Angeles NaN\nMiami 1200000.0\nNew York 750000.0\nSan Francisco 850000.0\nNom: Prix, dtype : float64\n","Surface totale par chambre :","Chambres\n2 1400\n3 3500\n4 4500\n5 3500\n","Dénombrement par lieu et par chambre :","Lieu Chambres\nChicago 3 1\nHouston 4 1\nLos Angeles 4 1\nMiami 5 1\nNew York 3 1\nSan Francisco 2 1\ndtype: int64\n","9. sort_values() : Trier les données"," La fonction sort_values() permet de trier votre DataFrame en fonction d'une ou de plusieurs colonnes, par ordre croissant ou décroissant. Le tri est essentiel pour classer les données, identifier les extrêmes (par exemple, les biens immobiliers les plus chers) ou simplement organiser l'ensemble de données pour en améliorer la lisibilité.Vous pouvez effectuer un tri sur la base de colonnes numériques, catégorielles ou temporelles. ","# Trier par \"Prix\" dans l'ordre décroissant\ndf_sorted_by_price = df.sort_values(by='Price', ascending=False)\nprint(df_sorted_by_price)\n# Trier par 'Emplacement' dans l'ordre croissant\ndf_sorted_by_location = df.sort_values(by='Location')\nprint(df_sorted_by_location)\n# Trier par plusieurs colonnes : d'abord par 'Chambres' (ordre croissant) et ensuite par 'Prix' (ordre décroissant)\ndf_sorted_by_bedrooms_price = df.sort_values(by=['Bedrooms', 'Price'], ascending=[True, False])\nprint(df_sorted_by_bedrooms_price)\n","Trier par prix (décroissant) :"," PropertyID Emplacement Chambres ... Prix Pieds carrés Date d'inscription\n4 105 Miami 5... 1200000.0 3500 2023-03-22\n1 102 San Francisco 2... 850000.0 1400 2023-06-01\n0 101 New York 3... 750000.0 1800 2023-05-15\n3 104 Chicago 3... 650000.0 1700 NaN\n5 106 Houston 4... 450000.0 2000 2023-07-01\n2 103 Los Angeles 4... NaN 2500 2023-04-10","Trier par lieu (croissant) :","[6 lignes x 7 colonnes]\n PropertyID Location Bedrooms ... Prix Pieds carrés Date d'inscription\n3 104 Chicago 3 . .. 650000.0 1700 NaN\n5 106 Houston 4 .. . 450000.0 2000 2023-07-01\n2 103 Los Angeles 4 . .. NaN 2500 2023-04-10\n4 105 Miami 5 .. . 1200000.0 3500 2023-03-22\n0 101 New York 3 . .. 750000.0 1800 2023-05-15\n1 102 San Francisco 2 .. . 850000.0 1400 2023-06-01\n","Trier par chambres (croissant) et par prix (décroissant) :"," PropertyID Emplacement Chambres ... Prix Pieds carrés Date d'inscription\n1 102 San Francisco 2... 850000.0 1400 2023-06-01\n0 101 New York 3... 750000.0 1800 2023-05-15\n3 104 Chicago 3... 650000.0 1700 NaN\n5 106 Houston 4... 450000.0 2000 2023-07-01\n2 103 Los Angeles 4... NaN 2500 2023-04-10\n4 105 Miami 5... 1200000.0 3500 2023-03-22\n","10. apply() : Appliquer des fonctions personnalisées aux données"," La fonction apply() vous permet d'appliquer des fonctions personnalisées aux lignes ou aux colonnes d'un DataFrame. Il s'agit d'une méthode puissante pour effectuer des transformations, des calculs ou des opérations conditionnelles par élément qui vont au-delà des fonctions Pandas intégrées. "," Prenons un exemple dans lequel nous voulons créer une nouvelle colonne pour calculer le prix par pied carré. ","# Définir une fonction personnalisée pour calculer le prix par pied carré\ndef price_per_sqft(price, sqft) :\n return price / sqft if sqft != 0 else 0\n\n# Appliquer la fonction personnalisée pour créer une nouvelle colonne\ndf['PricePerSqFt'] = df.apply(lambda row: price_per_sqft(row['Price'], row['SquareFootage'])), axis=1)\nprint(df)\n","Voici le résultat du code ci-dessus :"," PropertyID Location Bedrooms ... Pieds carrés ListingDate PrixPerSqFt\n0 101 New York 3... 1800 2023-05-15 416.666667\n1 102 San Francisco 2... 1400 2023-06-01 607.142857\n2 103 Los Angeles 4... 2500 2023-04-10 NaN\n3 104 Chicago 3... 1700 NaN 382.352941\n4 105 Miami 5... 3500 2023-03-22 342.857143\n5 106 Houston 4... 2000 2023-07-01 225.000000\n"," Un autre exemple pourrait être la conversion des noms de lieux en majuscules ; ","# Appliquer une transformation pour mettre en majuscules tous les noms de lieux\ndf['Emplacement'] = df['Emplacement'].apply(lambda x : x.upper())\nprint(df)\n","Voici à quoi cela ressemble :"," PropertyID Emplacement Chambres ... Prix Pieds carrés Date d'inscription\n0 101 NEW YORK 3... 750000.0 1800 2023-05-15\n1 102 SAN FRANCISCO 2... 850000.0 1400 2023-06-01\n2 103 LOS ANGELES 4... NaN 2500 2023-04-10\n3 104 CHICAGO 3... 650000.0 1700 NaN\n4 105 MIAMI 5... 1200000.0 3500 2023-03-22\n5 106 HOUSTON 4... 450000.0 2000 2023-07-01","Conclusion"," Dans ce guide, nous avons exploré 10 fonctions Pandas essentielles pour l'analyse des données, du chargement et de l'inspection des données avec la fonction "," au nettoyage et à la transformation en utilisant des méthodes telles que ","et ",". Ces fonctions constituent la base de tout flux de travail d'analyse de données, vous permettant de nettoyer, de manipuler et de résumer efficacement les ensembles de données. En les maîtrisant, vous serez en mesure de relever les défis liés aux données du monde réel en toute confiance. Commencez à vous entraîner dès aujourd'hui et découvrez comment ces outils peuvent simplifier vos tâches d'analyse ! ","Par : ProxyScrape","Tapez pour rechercher ici...","Messages récents","How to Handle Pagination in Web Scraping using Python","Exporting Web Scraped Data to CSV, JSON, and Databases ","Introduction à l'analyse web en Python avec Parsel","Scraping web avec le langage de programmation PHP","lumière proxyscrape logo","https://proxyscrape.com/static/light_text_logo.svg","Vous cherchez de l'aide pour notre site proxys ou
? Voici les possibilités qui s'offrent à vous :","Crunchbase","A propos de nous","Merci à tous pour votre formidable soutien !","Liens rapides","Programme d'affiliation","Prime","ProxyScrape essai premium","Vérificateur de procuration en ligne","Types de mandataires","Pays mandataires","Cas d'utilisation du proxy","Important","Politique en matière de cookies","Clause de non-responsabilité","Politique de confidentialité","Conditions d'utilisation","Médias sociaux","Facebook","LinkedIn","Twitter","Quora","Télégramme","Discord","\n Copyright 2025 - Thib BV | Brugstraat 18 | 2812 Mechelen | Belgium | VAT BE 0749 716 760\n"]}
Pandas est la bibliothèque de référence pour les analystes de données et les programmeurs Python qui s'aventurent dans le monde de la manipulation et de l'analyse des données. Sa syntaxe intuitive et ses structures de données puissantes rendent la manipulation de vastes ensembles de données non seulement gérable, mais aussi efficace. Qu'il s'agisse d'importer des fichiers CSV, de nettoyer des ensembles de données désordonnés ou d'analyser des tendances, Pandas possède les outils dont vous avez besoin.
Si vous commencez tout juste votre apprentissage de Pandas, ce billet vous présentera 10 fonctions et méthodes essentielles que tout débutant devrait maîtriser. Ces fonctions vous aideront à charger, inspecter, nettoyer et analyser les données avec facilité.
Voici un aperçu rapide de chaque méthode et de ce qu'elle fait :
read_csv()
: Charge les données d'un fichier CSV dans un DataFrame Pandas.tête()
: Affiche les premières lignes du DataFrame.info()
: Fournit un résumé concis du DataFrame, y compris les types de colonnes et les valeurs manquantes.décrire()
: Génère des statistiques descriptives pour les colonnes numériques.isnull()
: Identifie les données manquantes dans le DataFrame.dropna()
: Supprime les lignes ou les colonnes dont les données sont manquantes.fillna()
: Remplace les données manquantes par les valeurs spécifiées.groupby()
: Regroupe les données sur la base d'une ou plusieurs colonnes et applique des fonctions d'agrégation.sort_values()
: Trie le DataFrame par une ou plusieurs colonnes.appliquer()
: Applique des fonctions personnalisées aux lignes ou aux colonnes du DataFrame. Tout d'abord, assurez-vous que Python est installé sur votre machine. Si ce n'est pas le cas, vous pouvez le télécharger à partir de ce lien.
Une fois Python installé, vérifiez que la bibliothèque Pandas est installée. Si ce n'est pas le cas, vous pouvez facilement l'ajouter en utilisant la commande suivante :
pip install pandas
Pour nos exemples, nous utiliserons l'ensemble de données fictives sur l'immobilier suivant :
PropertyID | Localisation | Chambres à coucher | Salles de bains | Prix | Pieds carrés | Date d'inscription |
101 | New York (en anglais) | 3 | 2 | 750000 | 1800 | 2023-05-15 |
102 | San Francisco | 2 | 1 | 850000 | 1400 | 2023-06-01 |
103 | Los Angeles | 4 | 3 | 2500 | 2023-04-10 | |
104 | Chicago (en anglais) | 3 | 2 | 650000 | 1700 | |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
106 | Houston | 4 | 3 | 450000 | 2000 | 2023-07-01 |
La première étape de l'utilisation de pandas consiste à charger vos données pour les préparer au traitement ou à l'analyse. L'une des méthodes les plus courantes pour importer des données dans un DataFrame pandas est la fonction read_csv().
import pandas as pd
# Charger l'ensemble de données dans un DataFrame Pandas
file_path = "real_estate_listings.csv" # Remplacer par votre chemin de fichier réel
# Créer le DataFrame
df = pd.read_csv(file_path)
Nous commençons par importer la bibliothèque pandas. En utilisant comme pd
est une convention courante parmi les développeurs pour simplifier le code. Par exemple, au lieu d'écrire pandas.read_csv()
nous pouvons simplement utiliser pd.read_csv()
ce qui rend le code plus concis et plus facile à lire.
Ensuite, indiquez le chemin d'accès au fichier CSV que vous souhaitez charger dans un DataFrame Pandas. Créez ensuite une variable et utilisez la méthode read_csv
pour charger le fichier dans le DataFrame.
Examinons à présent quelques paramètres importants qui découlent de cette méthode :
délimiteur :
Spécifiez le délimiteur utilisé dans le fichier CSV (par exemple, ,, ;, \t).df = pd.read_csv(file_path, delimiter=',')
index_col
: Dans notre tableau, chaque annonce immobilière est identifiée par un ID qui se trouve dans le champ "PropertyID". Pour s'assurer que pandas utilise cette colonne comme identifiant unique pour chaque propriété, nous pouvons la définir explicitement comme colonne ID. Sinon, pandas générera et attribuera automatiquement ses propres valeurs d'identification à chaque liste.df = pd.read_csv(file_path, index_col='PropertyID')
usecols
: Si votre fichier CSV contient de nombreuses colonnes mais que vous n'avez besoin que de quelques unes d'entre elles, pandas vous permet d'y parvenir facilement à l'aide d'un paramètre spécifique.df = pd.read_csv(file_path, usecols=['Location', 'Price', 'Bedrooms'])
Maintenant que les données sont chargées dans le DataFrame, nous pouvons commencer à les explorer. Pour ce faire, Pandas fournit deux méthodes très pratiques : tête()
et queue()
. Ces méthodes sont essentielles pour inspecter rapidement les premières ou les dernières lignes de votre ensemble de données.
# Afficher les 5 premières lignes
print(df.head())
# Afficher les 3 dernières lignes
print(df.tail(3))
Sortie de tête()
:
PropertyID | Localisation | Chambres à coucher | Salles de bains | Prix | Pieds carrés | Date d'inscription |
101 | New York (en anglais) | 3 | 2 | 750000 | 1800 | 2023-05-15 |
102 | San Francisco | 2 | 1 | 850000 | 1400 | 2023-06-01 |
103 | Los Angeles | 4 | 3 | 2500 | 2023-04-10 | |
104 | Chicago (en anglais) | 3 | 2 | 650000 | 1700 | |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
Sortie de queue()
:
PropertyID | Localisation | Chambres à coucher | Salles de bains | Prix | Pieds carrés | Date d'inscription |
104 | Chicago (en anglais) | 3 | 2 | 650000 | 1700 | |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
106 | Houston | 4 | 3 | 450000 | 2000 | 2023-07-01 |
La fonction info() fournit un résumé concis du DataFrame. Elle inclut des détails tels que :
Cette méthode est utile pour comprendre rapidement la structure de votre ensemble de données et pour repérer des problèmes tels que des valeurs manquantes ou des types de données incorrects.
# Obtenir un résumé concis du DataFrame
print(df.info())
Le code ci-dessus produit le résultat suivant :
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 6 entries, 0 to 5
Data columns (total 7 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 PropertyID 6 non-null int64
1 Location 6 non-null object
2 Bedrooms 6 non-null int64
3 Bathrooms 6 non-null int64
4 Price 5 non-null float64
5 SquareFootage 6 non-null int64
6 ListingDate 5 non-null object
dtypes: float64(1), int64(4), object(2)
memory usage: 464.0+ bytes
Le décrire() permet d'obtenir un résumé rapide des principales données statistiques, telles que moyen, écart-type, centileset bien d'autres choses encore. Par défaut, décrire()
fonctionne avec des données numériques mais peut également traiter des données catégorielles, offrant ainsi des informations personnalisées basées sur le type de données.
centiles
: Une liste de nombres entre 0 et 1, spécifiant les percentiles à renvoyer. La valeur par défaut est None, qui renvoie les 25e, 50e et 75e centiles. Plus d'informations ici.inclure
: Liste des types de données à inclure dans le résumé. Vous pouvez spécifier des types de données tels que int, float, object (pour les chaînes de caractères), etc. La valeur par défaut est None, ce qui signifie que tous les types numériques sont inclus.exclure
: Une liste de types de données à exclure du résumé. Ce paramètre est également Aucun
par défaut, ce qui signifie qu'aucun type n'est exclu.print(df.describe())
La sortie du code est la suivante :
PropertyID Emplacement Chambres ... Prix Pieds carrés Date d'inscription
nombre 6.000000 6 6.000000... 5.000000e+00 6.000000 5
unique NaN 6 NaN ... NaN NaN 5
top NaN New York NaN ... NaN NaN 2023-05-15
freq NaN 1 NaN ... NaN NaN 1
moyenne 103.500000 NaN 3.500000... 7.800000e+05 2150.000000 NaN
std 1.870829 NaN 1.048809... 2.774887e+05 755.645419 NaN
min 101.000000 NaN 2.000000... 4.500000e+05 1400.000000 NaN
25% 102.250000 NaN 3.000000... 6.500000e+05 1725.000000 NaN
50% 103.500000 NaN 3.500000... 7.500000e+05 1900.000000 NaN
75% 104.750000 NaN 4.000000... 8.500000e+05 2375.000000 NaN
max 106.000000 NaN 5.000000... 1.200000e+06 3500.000000 NaN
compte = 6
pour Chambres à coucherindiquant que toutes les lignes contiennent des données valides.moyenne = 3,5
pour Chambres à coucherindiquant une moyenne de 3,5 chambres à coucher par propriété.std = 1,048809
pour Chambres à coucherCela signifie que le nombre de chambres à coucher varie modérément.min = 2
et max = 5
pour Chambres à coucher.25%
: Valeur en dessous de laquelle se situent 25% des données (premier quartile).50%
: La valeur médiane.75%
: Valeur en dessous de laquelle se situent 75% des données (troisième quartile). Le isnull() permet d'identifier les données manquantes dans un DataFrame. Elle renvoie un DataFrame de la même forme que l'original, avec des données Vrai
lorsque les données sont manquantes NaN
et Faux
autrement. Elle est couramment utilisée avec d'autres fonctions telles que somme()
pour compter les valeurs manquantes dans les colonnes ou les lignes.
# Identifier les valeursmanquantes
print(df.isnull())
# Compter les valeurs manquantes pour chaque colonne
print(df.isnull().sum())
df.isnull()
Sortie :
Identifiant de propriété Emplacement Salle de bains Salle de bain Prix Pieds carrés Date d'inscription
0 Faux Faux Faux Faux Faux Faux Faux
1 Faux Faux Faux Faux Faux Faux Faux
2 Faux Faux Faux Faux Vrai Faux Faux
3 Faux Faux Faux Faux Faux Faux Vrai
4 Faux Faux Faux Faux Faux Faux Faux
5 Faux Faux Faux Faux Faux Faux Faux
df.isnull().sum()
Sortie :
PropertyID 0
Emplacement 0
Chambres 0
Salle de bain 0
Prix 1
Pieds carrés 0
ListingDate 1
dtype: int64
Le dropna() La fonction supprime rangs ou colonnes avec données manquantes NaN
du DataFrame. Par défaut, il supprime les lignes contenant des valeurs manquantes. Vous pouvez personnaliser son comportement pour ne supprimer que les colonnes, ou pour supprimer les lignes/colonnes dont toutes les valeurs ou un sous-ensemble spécifique de valeurs sont manquantes.
# Supprimer les lignes contenant des valeurs manquantes
df_dropped_rows = df.dropna()
print(df_dropped_rows)
# Supprimez les colonnes contenant des valeurs manquantes
df_dropped_columns = df.dropna(axis=1)
print(df_dropped_columns)
Voici à quoi ressemble le DataFrame après avoir supprimé tous les rangs contenant NaN
valeurs :
PropertyID | Localisation | Chambres à coucher | Salles de bains | Prix | Pieds carrés | Date d'inscription |
101 | New York (en anglais) | 3 | 2 | 750000 | 1800 | 2023-05-15 |
102 | San Francisco | 2 | 1 | 850000 | 1400 | 2023-06-01 |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
106 | Houston | 4 | 3 | 450000 | 2000 | 2023-07-01 |
Voici le cadre de données avec colonnes contenant NaN
supprimées.
PropertyID | Localisation | Chambres à coucher | Salles de bains | Pieds carrés |
101 | New York (en anglais) | 3 | 2 | 1800 |
102 | San Francisco | 2 | 1 | 1400 |
103 | Los Angeles | 4 | 3 | 2500 |
104 | Chicago (en anglais) | 3 | 2 | 1700 |
105 | Miami | 5 | 4 | 3500 |
106 | Houston | 4 | 3 | 2000 |
Le fillna() remplace les données manquantes NaN
avec les valeurs spécifiées. L'outil pandas dropna()
gère et supprime efficacement les valeurs nulles d'un DataFrame, tandis que la méthode fillna()
offre une solution flexible pour remplacer les NaN
avec une valeur spécifiée de votre choix. Cette méthode offre une approche flexible de la gestion des données manquantes en vous permettant de combler les lacunes à l'aide d'une valeur fixe, la moyen, médiane, modeou d'autres statistiques calculées.
# Remplir les valeurs manquantes de la colonne "Prix" avec le prix moyen df['Prix'] =
df['Prix'].fillna(df['Prix'].mean())
print(df)
La sortie du code montre que le NaN
a été remplacée avec succès par le prix moyen.
PropertyID | Localisation | Chambres à coucher | Salles de bains | Prix | Pieds carrés | Date d'inscription |
101 | New York (en anglais) | 3 | 2 | 750000 | 1800 | 2023-05-15 |
102 | San Francisco | 2 | 1 | 850000 | 1400 | 2023-06-01 |
103 | Los Angeles | 4 | 3 | 780000 | 2500 | 2023-04-10 |
104 | Chicago (en anglais) | 3 | 2 | 650000 | 1700 | NaN |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
106 | Houston | 4 | 3 | 450000 | 2000 | 2023-07-01 |
Le Date d'inscription La colonne contient également un NaN
valeur. Au lieu d'effectuer un calcul, nous pouvons simplement utiliser un espace réservé tel que "inconnue. Voici comment procéder ;
# Remplir les valeurs manquantes de la colonne "ListingDate" avec un caractère générique
df['ListingDate'] = df['ListingDate'].fillna('Unknown')
print(df)
Le cadre de données se présente désormais comme suit :
PropertyID | Localisation | Chambres à coucher | Salles de bains | Prix | Pieds carrés | Date d'inscription |
101 | New York (en anglais) | 3 | 2 | 750000 | 1800 | 2023-05-15 |
102 | San Francisco | 2 | 1 | NaN | 1400 | 2023-06-01 |
103 | Los Angeles | 4 | 3 | 780000 | 2500 | 2023-04-10 |
104 | Chicago (en anglais) | 3 | 2 | 650000 | 1700 | Inconnu |
105 | Miami | 5 | 4 | 1200000 | 3500 | 2023-03-22 |
106 | Houston | 4 | 3 | 450000 | 2000 | 2023-07-01 |
La fonction groupby() de Pandas est un outil polyvalent et puissant qui permet de diviser un DataFrame en groupes sur la base d'une ou plusieurs colonnes, ce qui permet une analyse et une agrégation efficaces des données.
Elle fonctionne selon le principe " diviser-appliquer-combiner":
d'abord, les données sont divisées en groupes ;
ensuite, une fonction spécifiée est appliquée à chaque groupe ;
enfin, les résultats sont combinés dans un nouveau DataFrame.
Cette approche rationalisée simplifie les tâches complexes de manipulation des données et améliore l'efficacité de l'analyse.
Par exemple, vous pouvez calculer le prix moyen des biens par emplacement ou compter le nombre d'annonces par catégorie de chambre.
# Regroupement par "lieu" et calcul du prix moyen
avg_price_by_location = df.groupby('Location')['Price'].mean()
print(avg_prix_par_lieu)
# Grouper par 'Chambres' et calculer le total des pieds carrés
total_sqft_by_bedrooms = df.groupby('Bedrooms')['SquareFootage'].sum()
print(total_sqft_by_bedrooms)
# Grouper par plusieurs colonnes et calculer le nombre
count_by_location_bedrooms = df.groupby(['Location', 'Bedrooms']).size()
print(count_by_location_bedrooms)
Prix moyen par lieu :
Lieu de travail
Chicago 650000.0
Houston 450000.0
Los Angeles NaN
Miami 1200000.0
New York 750000.0
San Francisco 850000.0
Nom: Prix, dtype : float64
Surface totale par chambre :
Chambres
2 1400
3 3500
4 4500
5 3500
Dénombrement par lieu et par chambre :
Lieu Chambres
Chicago 3 1
Houston 4 1
Los Angeles 4 1
Miami 5 1
New York 3 1
San Francisco 2 1
dtype: int64
La fonction sort_values() permet de trier votre DataFrame en fonction d'une ou de plusieurs colonnes, par ordre croissant ou décroissant. Le tri est essentiel pour classer les données, identifier les extrêmes (par exemple, les biens immobiliers les plus chers) ou simplement organiser l'ensemble de données pour en améliorer la lisibilité.Vous pouvez effectuer un tri sur la base de colonnes numériques, catégorielles ou temporelles.
# Trier par "Prix" dans l'ordre décroissant
df_sorted_by_price = df.sort_values(by='Price', ascending=False)
print(df_sorted_by_price)
# Trier par 'Emplacement' dans l'ordre croissant
df_sorted_by_location = df.sort_values(by='Location')
print(df_sorted_by_location)
# Trier par plusieurs colonnes : d'abord par 'Chambres' (ordre croissant) et ensuite par 'Prix' (ordre décroissant)
df_sorted_by_bedrooms_price = df.sort_values(by=['Bedrooms', 'Price'], ascending=[True, False])
print(df_sorted_by_bedrooms_price)
Trier par prix (décroissant) :
PropertyID Emplacement Chambres ... Prix Pieds carrés Date d'inscription
4 105 Miami 5... 1200000.0 3500 2023-03-22
1 102 San Francisco 2... 850000.0 1400 2023-06-01
0 101 New York 3... 750000.0 1800 2023-05-15
3 104 Chicago 3... 650000.0 1700 NaN
5 106 Houston 4... 450000.0 2000 2023-07-01
2 103 Los Angeles 4... NaN 2500 2023-04-10
Trier par lieu (croissant) :
[6 lignes x 7 colonnes]
PropertyID Location Bedrooms ... Prix Pieds carrés Date d'inscription
3 104 Chicago 3 . .. 650000.0 1700 NaN
5 106 Houston 4 .. . 450000.0 2000 2023-07-01
2 103 Los Angeles 4 . .. NaN 2500 2023-04-10
4 105 Miami 5 .. . 1200000.0 3500 2023-03-22
0 101 New York 3 . .. 750000.0 1800 2023-05-15
1 102 San Francisco 2 .. . 850000.0 1400 2023-06-01
Trier par chambres (croissant) et par prix (décroissant) :
PropertyID Emplacement Chambres ... Prix Pieds carrés Date d'inscription
1 102 San Francisco 2... 850000.0 1400 2023-06-01
0 101 New York 3... 750000.0 1800 2023-05-15
3 104 Chicago 3... 650000.0 1700 NaN
5 106 Houston 4... 450000.0 2000 2023-07-01
2 103 Los Angeles 4... NaN 2500 2023-04-10
4 105 Miami 5... 1200000.0 3500 2023-03-22
La fonction apply() vous permet d'appliquer des fonctions personnalisées aux lignes ou aux colonnes d'un DataFrame. Il s'agit d'une méthode puissante pour effectuer des transformations, des calculs ou des opérations conditionnelles par élément qui vont au-delà des fonctions Pandas intégrées.
Prenons un exemple dans lequel nous voulons créer une nouvelle colonne pour calculer le prix par pied carré.
# Définir une fonction personnalisée pour calculer le prix par pied carré
def price_per_sqft(price, sqft) :
return price / sqft if sqft != 0 else 0
# Appliquer la fonction personnalisée pour créer une nouvelle colonne
df['PricePerSqFt'] = df.apply(lambda row: price_per_sqft(row['Price'], row['SquareFootage'])), axis=1)
print(df)
Voici le résultat du code ci-dessus :
PropertyID Location Bedrooms ... Pieds carrés ListingDate PrixPerSqFt
0 101 New York 3... 1800 2023-05-15 416.666667
1 102 San Francisco 2... 1400 2023-06-01 607.142857
2 103 Los Angeles 4... 2500 2023-04-10 NaN
3 104 Chicago 3... 1700 NaN 382.352941
4 105 Miami 5... 3500 2023-03-22 342.857143
5 106 Houston 4... 2000 2023-07-01 225.000000
Un autre exemple pourrait être la conversion des noms de lieux en majuscules ;
# Appliquer une transformation pour mettre en majuscules tous les noms de lieux
df['Emplacement'] = df['Emplacement'].apply(lambda x : x.upper())
print(df)
Voici à quoi cela ressemble :
PropertyID Emplacement Chambres ... Prix Pieds carrés Date d'inscription
0 101 NEW YORK 3... 750000.0 1800 2023-05-15
1 102 SAN FRANCISCO 2... 850000.0 1400 2023-06-01
2 103 LOS ANGELES 4... NaN 2500 2023-04-10
3 104 CHICAGO 3... 650000.0 1700 NaN
4 105 MIAMI 5... 1200000.0 3500 2023-03-22
5 106 HOUSTON 4... 450000.0 2000 2023-07-01
Dans ce guide, nous avons exploré 10 fonctions Pandas essentielles pour l'analyse des données, du chargement et de l'inspection des données avec la fonction
et read_csv()
au nettoyage et à la transformation en utilisant des méthodes telles que info()
, isnull()
et fillna()
. Ces fonctions constituent la base de tout flux de travail d'analyse de données, vous permettant de nettoyer, de manipuler et de résumer efficacement les ensembles de données. En les maîtrisant, vous serez en mesure de relever les défis liés aux données du monde réel en toute confiance. Commencez à vous entraîner dès aujourd'hui et découvrez comment ces outils peuvent simplifier vos tâches d'analyse ! appliquer()