> Modules non standards > Pandas > Lecture et écriture de fichiers
Lecture et écriture de fichiers
Lecture d'un dataframe à partir d'un fichier :
- df = pandas.read_csv('myFile.csv') : par défaut, suppose qu'il y a un header (header = 0) et qu'il n'y a pas de noms de colonne (index_col = None).
- sep = '\t' ou delimiter = '\t' : indique que le séparateur est une tabulation plutôt qu'une virgule.
- si tableau avec étiquettes de lignes et de colonnes : df = pandas.read_csv('myFile.csv', sep = '\t', index_col = 0) (index_col est en fait le numéro de colonne contenant l'index).
- si tableau avec étiquettes de colonnes seulement : df = pandas.read_csv('myFile.csv', sep = '\t').
- si tableau avec étiquettes de lignes seulement : df = pandas.read_csv('myFile.csv', sep = '\t', header = None, index_col = 0).
- si tableau sans étiquettes de lignes ni de colonnes : df = pandas.read_csv('myFile.csv', sep = '\t', header = None).
- df = pandas.read_csv(fileName, sep = '\t', converters = {'barcode': str} : convertit la colonne barcode avec la fonction str. Attention :
- si on se trompe dans le nom, le converter est ignoré et aucune erreur !
- si on met un converter de type str, le na_values n'est pas pris en compte !
- on peut imposer des noms aux colonnes :
- si pas de header (noms de colonnes) dans le fichier initial : df = pandas.read_csv('myFile.csv', sep = '\t', names = ['X1', 'X2', 'X3'])
- si il y a déjà un header (noms de colonnes) dans le fichier initial : df = pandas.read_csv('myFile.csv', sep = '\t', names = ['X1', 'X2', 'X3'], header = 0).
- df = pandas.read_csv('myFile.csv', sep = '\t', na_values = ['-']) : on donne avec na_values la liste des valeurs qui doivent être assimilées à NaN (valeur non définie).
- Pour préciser les types de certaines colonnes, on peut faire : df = read_csv(myFile, sep = '\t', dtype = {'col1': str, 'col2': int, 'col4': numpy.float})
- df = pandas.read_csv('myFile.csv', sep = '\t', skiprows = [0, 1]) : lit le fichier en sautant les lignes 0 et 1 du fichier (donc ici, le header est sur la 3ème ligne, d'index 2). Très utile si ces lignes contiennent des intitulés qui perturbent alors complètement le typage de chaque colonne !
- skip_footer = 5 : saute les 5 dernières lignes du fichier.
- attention : si nom de colonne répété, le deuxième est modifié avec une extension .1, le troisième avec une extension .2, etc ...
- on peut lire seulement le début d'un tableau : df = pandas.read_csv(..., nrows = 1000) (utile pour le debugging !)
Ecriture d'un dataframe dans un fichier :
- df.to_csv('myFile.csv', sep = '\t') : écrit le dataframe avec une tabulation comme séparateur (le défaut est une virgule).
- header = False : supprime le header des colonnes (défaut est de l'inclure).
- index = False : supprime le nom des lignes (défaut est de l'inclure).
- na_rep = '-' : imprime les valeurs NaN comme '-' (le défaut est la chaîne vide).
- pour écrire sur stdout : df.to_csv(sys.stdout, sep = '\t', index = False) ou alors print(df.to_csv(sep = '\t', index = False))
- pour mettre un titre à la colonne d'index : df.to_csv(..., index = True, index_label = 'firstColumn')
Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert