Accéder au contenu principal

pandas read csv() Tutoriel : Importation de données

L'importation de données est la première étape de tout projet de science des données. Découvrez pourquoi les scientifiques des données d'aujourd'hui préfèrent la fonction pandas read_csv() pour ce faire.
Actualisé 4 oct. 2024  · 9 min de lecture

pandas est une bibliothèque Python largement utilisée pour la science des données, l'analyse et l'apprentissage automatique, qui offre un moyen flexible et intuitif de traiter des ensembles de données de toutes tailles. L'une des fonctionnalités les plus importantes de pandas est l'outil de lecture et d'écriture des données. Pour les données disponibles dans un format tabulaire et stockées dans un fichier CSV, vous pouvez utiliser pandas pour les lire en mémoire à l'aide de la fonction read_csv(), qui renvoie un cadre de données pandas. Mais il y a aussi d'autres fonctionnalités. Par exemple, vous pouvez utiliser pandas pour effectuer des opérations de fusion, de remodelage, de jonction et de concaténation. 

Dans cet article, vous découvrirez la fonction read_csv() et la manière dont vous pouvez modifier les paramètres pour personnaliser le résultat que vous recevez une fois la fonction exécutée. Nous aborderons également les différentes méthodes disponibles pour un objet pandas dataframe, y compris comment écrire un pandas dataframe dans un fichier CSV et comment en savoir plus sur vos données grâce à diverses méthodes et attributs.  

Pratiquez les fonctions pandas avec les exercices pratiques de notre cours Python Intermédiaire.

Note: Consultez ce cahier d'exercices DataLab pour suivre le code. 

Importation d'un fichier CSV à l'aide de la fonction read_csv()

Avant de lire un fichier CSV dans un dataframe pandas, vous devez avoir une idée du contenu des données. Il est donc recommandé de parcourir le fichier avant d'essayer de le charger dans la mémoire : vous saurez ainsi quelles colonnes sont nécessaires et lesquelles peuvent être supprimées.

Ecrivons un peu de code pour importer un fichier à l'aide de read_csv(). Nous pourrons alors parler de ce qui se passe et de la manière dont nous pouvons personnaliser les résultats que nous recevons lors de la lecture des données dans la mémoire.

import pandas as pd

# Read the CSV file
airbnb_data = pd.read_csv("data/listings_austin.csv")

# View the first 5 rows
airbnb_data.head()

lire les données initiales de pandas

Tout ce qui s'est passé dans le code ci-dessus, c'est que nous avons :

  1. Importer la bibliothèque pandas dans notre environnement
  2. Transmet le chemin d'accès au fichier à read_csv pour qu'il lise les données en mémoire sous la forme d'un cadre de données pandas.
  3. Imprime les cinq premières lignes de la base de données.

Mais la fonction read_csv() ne s'arrête pas là.

Apprenez Python à partir de zéro

Maîtrisez Python pour la science des données et acquérez des compétences recherchées.
Commencez à apprendre gratuitement

Définition d'une colonne comme index

Le comportement par défaut de pandas est d'ajouter un index initial au dataframe renvoyé par le fichier CSV qu'il a chargé en mémoire. Toutefois, vous pouvez spécifier explicitement quelle colonne doit servir d'index à la fonction read_csv en définissant le paramètre index_col.

Notez que la valeur que vous attribuez à index_col peut prendre la forme d'un nom de chaîne, d'un index de colonne ou d'une séquence de noms de chaîne ou d'index de colonne. L'attribution d'une séquence au paramètre se traduira par un multi-index (regroupement de données sur plusieurs niveaux).

Lisons à nouveau les données et définissons la colonne id comme index.

# Setting the id column as the index
airbnb_data = pd.read_csv("data/listings_austin.csv", index_col="id")
# airbnb_data = pd.read_csv("data/listings_austing.csv", index_col=0)

# Preview first 5 rows
airbnb_data.head()

id index

Sélection de colonnes spécifiques à lire en mémoire

Que se passe-t-il si vous ne voulez lire que certaines colonnes en mémoire parce qu'elles ne sont pas toutes importantes ? Il s'agit d'un scénario courant qui se produit dans le monde réel. En utilisant la fonction read_csv, vous pouvez sélectionner uniquement les colonnes dont vous avez besoin après avoir chargé le fichier, mais cela signifie que vous devez connaître les colonnes dont vous avez besoin avant de charger les données si vous souhaitez effectuer cette opération à partir de la fonction read_csv.

Si vous connaissez les colonnes dont vous avez besoin, vous avez de la chance : vous pouvez gagner du temps et de la mémoire en passant un objet de type liste au paramètre usecols de la fonction read_csv.

# Defining the columns to read
usecols = ["id", "name", "host_id", "neighbourhood", "room_type", "price", "minimum_nights"]

# Read data with subset of columns
airbnb_data = pd.read_csv("data/listings_austin.csv", index_col="id", usecols=usecols)

# Preview first 5 rows
airbnb_data.head()

read_csv_usecols

Nous avons à peine effleuré les différentes façons de personnaliser la sortie de la fonction read_csv, mais aller plus en profondeur serait certainement une surcharge d'informations.

Nous vous recommandons de mettre en signet l'aide-mémoire sur l'importation de données en Python et de consulter Introduction à l'importation de données en Python pour en savoir plus. Si c'est un peu trop facile, il y a aussi le cours interactif intermédiaire sur l'importation de données en Python.

Lecture de données à partir d'une URL

Une fois que vous savez comment lire un fichier CSV du stockage local dans la mémoire, la lecture de données provenant d'autres sources est un jeu d'enfant. Il s'agit en fin de compte du même processus, sauf que vous ne passez plus un chemin d'accès au fichier.

Supposons que vous souhaitiez obtenir des données d'une page web spécifique ; comment les lire dans la mémoire ?

Nous utiliserons l'ensemble de données Iris du dépôt de l'UCI à titre d'exemple :

# Webpage URL
url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"

# Define the column names
col_names = ["sepal_length_in_cm",
            "sepal_width_in_cm",
            "petal_length_in_cm",
            "petal_width_in_cm",
            "class"]

# Read data from URL
iris_data = pd.read_csv(url, names=col_names)

iris_data.head() 

jeu de données sur l'iris

Voilà !

Vous avez peut-être remarqué que nous avons attribué une liste de chaînes de caractères au paramètre names de la fonction read_csv. Cela nous permet de renommer les en-têtes de colonne lors de la lecture des données en mémoire.

Méthodes et attributs de la structure DataFrame

L'objet le plus courant de la bibliothèque pandas est, de loin, l'objet dataframe. Il s'agit d'une structure de données étiquetée bidimensionnelle composée de lignes et de colonnes qui peuvent être de différents types (par exemple, flottant, numérique, catégorique, etc.).

Conceptuellement, vous pouvez considérer un dataframe pandas comme une feuille de calcul, une table SQL ou un dictionnaire d'objets de série - selon ce qui vous est le plus familier. Ce qui est intéressant avec le dataframe pandas, c'est qu'il est livré avec de nombreuses méthodes qui vous permettent de vous familiariser avec vos données le plus rapidement possible.

Vous avez déjà vu l'une de ces méthodes : iris_data.head() qui affiche les n premières lignes (5 par défaut). La méthode "opposée" à head() est tail(), qui affiche les dernières n (5 par défaut) lignes de l'objet dataframe. Par exemple :

iris_data.tail()

head

Vous pouvez rapidement découvrir les noms des colonnes en utilisant l'attribut columns sur votre objet dataframe :

# Discover the column names
iris_data.columns

"""
Index(['sepal_length_in_cm', 'sepal_width_in_cm', 'petal_length_in_cm',
      'petal_width_in_cm', 'class'],
      dtype='object')
"""

Une autre méthode importante que vous pouvez utiliser sur votre objet dataframe est info(). Cette méthode affiche un résumé concis du cadre de données, y compris des informations sur l'index, les types de données, les colonnes, les valeurs non nulles et l'utilisation de la mémoire.

# Get summary information of the dataframe
iris_data.info()

"""
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 150 entries, 0 to 149
Data columns (total 5 columns):
#   Column              Non-Null Count  Dtype 
---  ------              --------------  ----- 
0   sepal_length_in_cm  150 non-null    float64
1   sepal_width_in_cm   150 non-null    float64
2   petal_length_in_cm  150 non-null    float64
3   petal_width_in_cm   150 non-null    float64
4   class               150 non-null    object
dtypes: float64(4), object(1)
memory usage: 6.0+ KB
"""

DataFrame.describe() génère des statistiques descriptives, y compris celles qui résument la tendance centrale, la dispersion et la forme de la distribution de l'ensemble de données. Si vos données comportent des valeurs manquantes, ne vous inquiétez pas ; elles ne sont pas incluses dans les statistiques descriptives.

Appelons la méthode describe sur l'ensemble de données Iris :

# Get descriptive statistics
iris_data.describe()

describe

Exportation du DataFrame vers un fichier CSV

Une autre méthode disponible pour les objets pandas dataframe est to_csv(). Lorsque vous avez nettoyé et prétraité vos données, l'étape suivante peut consister à exporter le cadre de données vers un fichier - c'est assez simple :

# Export the file to the current working directory
iris_data.to_csv("cleaned_iris_data.csv")

L'exécution de ce code créera un fichier CSV dans le répertoire de travail actuel appelé cleaned_iris_data.csv.

Mais qu'en est-il si vous souhaitez utiliser un délimiteur différent pour marquer le début et la fin d'une unité de données ou si vous voulez spécifier la manière dont vos valeurs manquantes doivent être représentées ? Peut-être ne souhaitez-vous pas que les en-têtes soient exportés dans le fichier.

Vous pouvez adapter les paramètres de la méthode to_csv() à vos besoins pour les données que vous souhaitez exporter.

Voyons quelques exemples de la manière dont vous pouvez ajuster la sortie de to_csv():

  • Exporter les données dans le répertoire de travail actuel mais en utilisant un délimiteur de tabulation.
# Change the delimiter to a tab
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t")
  • Exporter des données sans l'index
# Export data without the index
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t")

# If you get UnicodeEncodeError use this... 
# iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t", index=False, encoding='utf-8')
  • Changez le nom des valeurs manquantes (la valeur par défaut est "")
# Replace missing values with "Unknown"
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t", na_rep="Unknown")
  • Exportation d'un tableau de données vers un fichier sans en-tête (nom des colonnes)
# Do not include headers when exporting the data
iris_data.to_csv("tab_seperated_iris_data.csv", sep="\t", na_rep="Unknown", header=False)

Dernières réflexions

Récapitulons ce que nous avons couvert dans ce tutoriel ; vous avez appris à.. :

  • Importez un fichier CSV à l'aide de la fonction read_csv() de la bibliothèque pandas.
  • Définissez l'index d'une colonne pendant que vous lisez vos données en mémoire.
  • Indiquez les colonnes de vos données que la fonction read_csv() doit renvoyer.
  • Lire des données à partir d'une URL à l'aide de la fonction pandas.read_csv()
  • Obtenez rapidement des informations sur vos données à l'aide de méthodes et d'attributs sur votre objet dataframe.
  • Exporter un objet dataframe vers un fichier CSV
  • Personnalisez la sortie du fichier d'exportation de la méthode to_csv().

Dans ce tutoriel, nous nous sommes concentrés uniquement sur l'importation et l'exportation de données à partir d'un fichier CSV ; vous avez maintenant une bonne idée de l'utilité de pandas lors de l'importation et de l'exportation de fichiers CSV. CSV est l'un des formats de stockage de données les plus courants, mais ce n'est pas le seul. Il existe d'autres formats de fichiers utilisés dans la science des données, tels que parquet, JSON et excel.

De nombreux ensembles de données utiles et de grande qualité sont hébergés sur le web, auxquels vous pouvez accéder par le biais d'API, par exemple. Si vous souhaitez comprendre comment charger des données en Python de manière plus détaillée, le cours Introduction à l'importation de données en Python de DataCamp vous enseignera toutes les meilleures pratiques.

Vous trouverez également des tutoriels sur l 'importation de données JSON et HTML dans pandas, ainsi qu'un guide ultime de pandas destiné aux débutants. Ne manquez pas de les consulter pour vous plonger plus profondément dans le cadre de travail pandas.

Obtenez une certification pour le poste d'analyste de données de vos rêves

Nos programmes de certification vous aident à vous démarquer et à prouver aux employeurs potentiels que vos compétences sont adaptées à l'emploi.

Obtenez votre certification
Timeline mobile.png
Sujets

En savoir plus sur Python et pandas

cours

Pandas Joins for Spreadsheet Users

4 hr
3.9K
Learn how to effectively and efficiently join datasets in tabular format using the Python Pandas library.
Afficher les détailsRight Arrow
Commencer le cours
Voir plusRight Arrow
Apparenté

blog

Les 20 meilleures questions d'entretien pour les flocons de neige, à tous les niveaux

Vous êtes actuellement à la recherche d'un emploi qui utilise Snowflake ? Préparez-vous à répondre à ces 20 questions d'entretien sur le flocon de neige pour décrocher le poste !
Nisha Arya Ahmed's photo

Nisha Arya Ahmed

20 min

blog

Les 32 meilleures questions d'entretien sur AWS et leurs réponses pour 2024

Un guide complet pour explorer les questions d'entretien AWS de base, intermédiaires et avancées, ainsi que des questions basées sur des situations réelles. Il couvre tous les domaines, garantissant ainsi une stratégie de préparation bien équilibrée.
Zoumana Keita 's photo

Zoumana Keita

30 min

Voir plusVoir plus