Section courante

A propos

Section administrative du site

read_csv

Lecture CSV
Pandas Python

Syntaxe

pandas.read_csv(filepath_or_buffer: Union[str, pathlib.Path, IO[~AnyStr]], sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, skipfooter=0, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal: str = '.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, error_bad_lines=True, warn_bad_lines=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)

Paramètres

Nom Description
filepath_or_buffer Ce paramètre permet d'indiquer tout chemin de chaîne de caractères valide acceptable. La chaîne de caractères peut être une URL. Les schémas d'URL valides incluent le http, ftp, s3 et file. Pour les URL de fichier, un hôte est attendu. Un fichier local pourrait être : file://localhost/path/to/table.csv. Si vous souhaitez passer un objet chemin, pandas accepte n'importe quel os.PathLike. Par objet de type fichier, il se référera à des objets avec une méthode read(), tels qu'un gestionnaire de fichiers (par exemple via la fonction open intégrée) ou StringIO.
sep Ce paramètre permet d'indiquer le délimiteur à utiliser. Si sep est None, le moteur C ne peut pas détecter automatiquement le séparateur, mais le moteur d'analyse Python peut, ce qui signifie que ce dernier sera utilisé et détecter automatiquement le séparateur par l'outil renifleur intégré de Python, csv.Sniffer. De plus, les séparateurs de plus d'un caractère et différents de '\s+' seront interprétés comme des expressions régulières et forceront également l'utilisation du moteur d'analyse Python. Notez que les délimiteurs d'expressions régulières ont tendance à ignorer les données entre guillemets. Exemple d'expression régulière : '\r\t'.
delimiter Ce paramètre permet d'indiquer le délimiteur à utiliser. Ce paramètre est un alias du paramètre sep.
header Ce paramètre permet d'indiquer le ou les numéro(s) de ligne à utiliser comme noms de colonne et début des données. Le comportement par défaut consiste à déduire les noms de colonne : si aucun nom n'est transmis, le comportement est identique à header=0 et les noms de colonne sont déduits de la première ligne du fichier, si les noms de colonne sont passés explicitement, alors le comportement est identique à header=None. Passez explicitement header=0 pour pouvoir remplacer les noms existants. L'entête peut être une liste d'entiers spécifiant des emplacements de ligne pour un multi-index sur les colonnes, par exemple [0,1,3]. Les lignes intermédiaires non spécifiées seront ignorées (par exemple, 2 dans cet exemple est ignorée). Notez que ce paramètre ignore les lignes commentées et les lignes vides si skip_blank_lines=True, donc header=0 désigne la première ligne de données plutôt que la première ligne du fichier.
names Ce paramètre permet d'indiquer la liste des noms de colonne à utiliser. Si le fichier contient une ligne d'entête, vous devez explicitement passer header=0 pour remplacer les noms de colonne. Les doublons dans cette liste ne sont pas autorisés.
index_col Ce paramètre permet d'indiquer la ou les colonne(s) à utiliser comme étiquettes de ligne du DataFrame, soit comme nom de chaîne de caractères, soit comme index de colonne. Si une séquence d'entier et de chaîne de caractères est donnée, un MultiIndex est utilisé. Remarque: index_col=False peut être utilisé pour forcer pandas à ne pas utiliser la première colonne comme index, par exemple lorsque vous avez un fichier mal formé avec des délimiteurs à la fin de chaque ligne.
usecols Ce paramètre permet de retourner un sous-ensemble des colonnes. S'ils sont de type liste, tous les éléments doivent être positionnels (c'est-à-dire des indices entiers dans les colonnes du document) ou des chaînes de caractères correspondant aux noms de colonnes fournis par l'utilisateur dans les noms ou déduits des lignes d'entête du document. Par exemple, un paramètre usecols de type liste valide serait [0, 1, 2] ou ['premier', 'deuxieme', 'troisieme']. L'ordre des éléments est ignoré, donc usecols = [0, 1] est identique à [1, 0]. Pour instancier un DataFrame à partir de données avec l'ordre des éléments préservé, utilisez «pd.read_csv(data, usecols = ['premier', 'deuxieme']) [['premier', 'deuxieme']]» pour les colonnes de ['premier', 'deuxieme'] ordonné ou «pd.read_csv(data, usecols = ['deuxieme','premier']) [['deuxieme','premier']] pour ['deuxieme','premier']» ordonnée. Si elle est appelable, la fonction appelable sera évaluée par rapport aux noms de colonne, renvoyant les noms où la fonction appelable est évaluée à True. Un exemple de paramètre appelable valide serait «lambda x: x.upper() in ['AAA', 'BBB', 'DDD']». L'utilisation de ce paramètre entraîne un temps d'analyse beaucoup plus rapide et une utilisation moindre de la mémoire.
squeezebool Ce paramètre permet d'indiquer si les données analysées ne contiennent qu'une seule colonne et de retourner une Series.
prefix Ce paramètre permet d'indiquer que le préfixe à ajouter aux numéros de colonne en l'absence d'entête, par exemple «X» pour X0, X1,...
mangle_dupe_cols Ce paramètre permet d'indiquer que les colonnes en double seront spécifiées comme «X», «X.1»,... «X.N», plutôt que «X»...«X». Si vous passez False, les données seront écrasées s'il y a des noms en double dans les colonnes.
dtype Ce paramètre permet d'indiquer que le type de données pour les données ou les colonnes. Par exemple. {'a': np.float64, 'b': np.int32, 'c': 'Int64'}. Utilisez str ou object avec les paramètres na_values appropriés pour préserver et ne pas interpréter dtype. Si des convertisseurs sont spécifiés, ils seront appliqués au lieu de la conversion dtype.
engine Ce paramètre permet d'indiquer que le moteur d'analyse à utiliser. Le moteur C est plus rapide tandis que le moteur python est actuellement plus complet.
converters Ce paramètre permet de dicter des fonctions de conversion des valeurs dans certaines colonnes. Les clefs peuvent être des entiers ou des étiquetés de colonne.
true_values Ce paramètre permet d'indiquer les valeurs à considérer comme vraies.
false_values Ce paramètre permet d'indiquer les valeurs à considérer comme fausses.
skipinitialspace Ce paramètre permet d'indiquer qu'il faut ignorer les espaces après le délimiteur.
skiprows Ce paramètre permet d'indiquer les numéros de ligne à ignorer (indexés 0) ou nombre de lignes à ignorer (int) au début du fichier. Si elle est appelable, la fonction appelable sera évaluée par rapport aux indices de ligne, renvoyant True si la ligne doit être ignorée et False sinon. Un exemple de paramètre appelable valide serait «lambda x: x in [0, 2]».
skipfooter Ce paramètre permet d'indiquer le nombre de lignes au bas du fichier à ignorer (non pris en charge avec le moteur = 'c').
nrows Ce paramètre permet d'indiquer le nombre de lignes de fichier à lire. Utile pour lire des morceaux de gros fichiers.
na_values Ce paramètre permet d'indiquer des chaînes de caractères supplémentaires à reconnaître comme NA/NaN. Si le dict réussit, alors il y a aura des valeurs NA spécifiques par colonne. Par défaut, les valeurs suivantes sont interprétées comme NaN&nbsb;: '', '#N/A', '#N/A N/A', '#NA', '-1.#IND', '-1.#QNAN', '-NaN', '-nan', '1.#IND', '1.#QNAN', '<NA>', 'N/A', 'NA', 'NULL', 'NaN', 'n/a', 'nan', 'null'.
keep_default_na Ce paramètre permet d'indiquer si les valeurs NaN par défaut doivent être incluses lors de l'analyse des données. Selon que na_values est transmis, le comportement est le suivant :
  • Si keep_default_na a la valeur True et que na_values est spécifié, alors na_values est ajouté aux valeurs NaN par défaut utilisées pour l'analyse.
  • Si keep_default_na a la valeur True et que na_values n'est pas spécifié, seules les valeurs NaN par défaut sont utilisées pour l'analyse.
  • Si keep_default_na a la valeur False et que na_values est spécifié, seules les valeurs NaN spécifiées na_values sont utilisées pour l'analyse.
  • Si keep_default_na est False et que na_values n'est pas spécifié, aucune chaîne ne sera analysée comme NaN.
Notez que si na_filter est passé en False, les paramètres keep_default_na et na_values seront ignorés.
na_filter Ce paramètre permet d'indiquer qu'il faut détecter les marqueurs de valeur manquants (chaînes de caractères vides et valeur de na_values). Dans les données sans NA, la transmission de na_filter=False peut améliorer les performances de lecture d'un fichier volumineux.
verbose Ce paramètre permet d'indiquer le nombre de valeurs NA placées dans des colonnes non numériques.
skip_blank_lines Ce paramètre permet d'indiquer que si la valeur du paramètre est True, alors il faut ignorer les lignes vides plutôt que d'interpréter comme des valeurs NaN.
parse_dates Ce paramètre permet d'indiquer que le comportement de la date est le suivant :
  • booléen. Si True -> essayez d'analyser l'index.
  • Liste de int ou de noms. Par exemple. Si [1, 2, 3] -> essayez d'analyser les colonnes 1, 2, 3 chacune comme colonne de date distincte.
  • Liste de listes : par exemple. Si [[1, 3]] -> combinez les colonnes 1 et 3 et analysez-les en une seule colonne de date.
  • dict, par exemple {'Foo': [1, 3]} -> analyser les colonnes 1, 3 comme date et appeler le résultat 'foo'.
  • Si une colonne ou un index ne peut pas être représenté sous la forme d'un tableau d'heures, par exemple en raison d'une valeur non comparable ou d'un mélange de fuseaux horaires, la colonne ou l'index sera renvoyé tel quel en tant que type de données d'objet. Pour une analyse datetime non standard, utilisez pd.to_datetime après pd.read_csv. Pour analyser un index ou une colonne avec un mélange de fuseaux horaires, spécifiez date_parser pour être un pandas.to_datetime() partiellement appliqué avec utc=True.
Remarque : Un raccourci existe pour les dates au format iso8601-formatted.
infer_datetime_format Ce paramètre permet d'indiquer que si True et parse_dates sont activés, le pandas tenteront de déduire le format des chaînes de caractères datetime dans les colonnes, et si cela peut être déduit, passez à une méthode plus rapide pour les analyser. Dans certains cas, cette situation peut augmenter la vitesse d'analyse de 5 à 10 fois.
keep_date_col Ce paramètre permet d'indiquer que si True et parse_dates spécifient la combinaison de plusieurs colonnes, qu'il faut conserver les colonnes d'origine.
date_parser Ce paramètre permet d'indiquer une fonction offrant la possibilité de convertir une séquence de colonnes de chaînes de caractères en un tableau d'instances datetime. La valeur par défaut utilise dateutil.parser.parser pour effectuer la conversion. Les pandas tenteront d'appeler date_parser de trois manières différentes, passant à la suivante si une exception se produit: 1) Passez un ou plusieurs tableaux (tels que définis par parse_dates) comme arguments; 2) concaténer (par ligne) les valeurs de chaîne de caractères des colonnes définies par parse_dates dans un seul tableau et le transmettre; et 3) appeler date_parser une fois pour chaque ligne en utilisant une ou plusieurs chaînes (correspondant aux colonnes définies par parse_dates) comme paramètres.
dayfirst Ce paramètre permet d'indiquer si la date doit être au format DD/MM, format international et format européen.
cache_dates Ce paramètre permet d'indiquer que si la valeur est True, alors faut utiliser un cache de dates converties uniques pour appliquer la conversion datetime. Peut produire une accélération significative lors de l'analyse des chaînes de caractères de date en double, en particulier celles avec des décalages de fuseau horaire. Ce paramètre est disponible à partir de la version 0.25.0 de pandas.
iterator Ce paramètre permet de demander l'objet TextFileReader pour l'itération ou demander un morceaux avec get_chunk().
chunksize Ce paramètre permet de retourner l'objet TextFileReader pour l'itération.
compression Ce paramètre permet d'indiquer la décompression à la volée des données sur disque. Si 'infer' et filepath_or_buffer ressemblent à des chemins, alors il détecte la compression à partir des extensions suivantes:  '.gz', '.bz2', '.zip' ou '.xz' (sinon aucune décompression). Si vous utilisez «zip», le fichier ZIP ne doit contenir qu'un seul fichier de données à lire. Vous devez définir sur None pour aucune décompression.
thousands Ce paramètre permet d'indiquer le séparateur de milliers.
decimal Ce paramètre permet d'indiquer le caractère à reconnaître comme point décimal (par exemple, utilisez «,» pour les données européennes).
lineterminator Ce paramètre permet d'indiquer le caractère pour diviser le fichier en lignes. Valable uniquement avec l'analyseur C.
quotechar Ce paramètre permet d'indiquer le caractère de début et de fin d'un élément cité. Les éléments cités peuvent inclure le délimiteur et il sera ignoré.
quoting Ce paramètre permet d'indiquer le champ de contrôle citant le comportement selon les constantes «csv.QUOTE_*». Utilisez l'un des QUOTE_MINIMAL (0), QUOTE_ALL (1), QUOTE_NONNUMERIC (2) ou QUOTE_NONE (3).
doublequote Ce paramètre permet d'indiquer que lorsque quotechar est spécifié et que les guillemets ne sont pas QUOTE_NONE, indiquez s'il faut interpréter ou non deux éléments quotechar consécutifs INSIDE dans un champ comme un seul élément quotechar.
escapechar Ce paramètre permet d'indiquer la chaîne de caractères d'un seul caractère utilisée pour l'échappement à d'autres caractères.
comment Ce paramètre permet d'indiquer que le reste de la ligne ne doit pas être analysé. S'il est trouvé au début d'une ligne, la ligne sera complètement ignorée. Ce paramètre doit être un seul caractère. Comme les lignes vides (tant que skip_blank_lines=True), les lignes entièrement commentées sont ignorées par l'entête du paramètre mais pas par skiprows. Par exemple, si comment = '#', en analysant #empty\na,b,c\n1,2,3 avec header=0, 'a,b,c' sera traité comme entête.
encoding Ce paramètre permet d'indiquer l'encodage à utiliser pour UTF lors de la lecture et l'écriture (exemple «Utf-8»).
dialect Ce paramètre permet de remplacer les valeurs (par défaut ou non) pour les paramètres suivants : delimiter, doublequote, escapechar, skipinitialspace, quotechar, et quoting. S'il est nécessaire de remplacer les valeurs, un ParserWarning sera émis.
error_bad_lines Ce paramètre permet d'indiquer les lignes avec trop de champs (par exemple une ligne csv avec trop de virgules) provoquant par défaut une exception et aucun DataFrame ne sera retourné. Si la valeur est False, ces «mauvaises lignes» seront supprimées du DataFrame renvoyé.
warn_bad_lines Ce paramètre permet d'indiquer si error_bad_lines vaut False et warn_bad_lines vaut True, un avertissement pour chaque "mauvaise ligne" sera émis.
delim_whitespace Ce paramètre permet d'indiquer si un espace blanc (par exemple, '' ou ' ') sera utilisé comme séparateur. Équivaut à définir sep = '\s+'. Si ce paramètre est définie sur True, rien ne doit être transmis pour le paramètre délimiteur.
low_memory Ce paramètre permet de traiter le fichier en interne en morceaux, cette situation réduisant l'utilisation de la mémoire pendant l'analyse, mais peut-être une inférence de type mixte. Pour garantir qu'aucun type mixte, définissez False ou spécifiez le type avec le paramètre dtype. Notez que le fichier entier est lu dans un seul DataFrame, utilisez le paramètre chunksize ou iterator pour renvoyer les données en morceaux. (Valable uniquement avec l'analyseur C).
memory_map Ce paramètre permet d'indiquer si un chemin de fichier est fourni pour filepath_or_buffer, de cartographier l'objet fichier directement sur la mémoire et accéder aux données directement à partir de là. L'utilisation de ce paramètre peut améliorer les performances car il n'y a plus de surcharge d'entrée/sortie.
float_precision Ce paramètre permet d'indiquer le convertisseur que le moteur C doit utiliser pour les valeurs à virgule flottante. Les paramètres sont None pour le convertisseur ordinaire, high pour le convertisseur haute précision et round_trip pour le convertisseur aller-retour.

Retour

Valeur Description
DataFrame Ces valeurs permettent d'indiquer une structure de données bidimensionnelle avec des axes étiquetés.
TextParser Ces valeurs permettent d'indiquer un objet d'analyseur texte si une demande d'itération a été fait avec le paramètre iterator.

Description

Cette fonction permet d'effectuer la lecture d'un fichier ou d'un tampon de format CSV (comma-separated values) dans un DataFrame.

Exemple

L'exemple suivant permet d'afficher la liste des colonnes d'un tableau contenu dans un fichier «.csv» :

  1. import pandas as pd
  2.  
  3. df = pd.read_csv("monfichier.csv", header=0, engine='c', low_memory=False, encoding='latin-1')
  4.  
  5. i = 1
  6. for column in df.columns:
  7.     print("Colonne ", i, " :", column)
  8.     i += 1


Dernière mise à jour : Vendredi, le 6 mars 2020