Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

introduction sur les tables de données

lecture d’une table de données

format CSV


la librairie de data-science


on importe pandas

'3.0.6'

lecture d’un fichier csv

pandas.DataFrame
Loading...

lecture d’un fichier excel

description rapide de la table des données

Loading...
Loading...
Loading...
count 714.00 mean 29.70 std 14.53 min 0.42 25% 20.12 50% 28.00 75% 38.00 max 80.00 Name: Age, dtype: float64

les index et indices des tables

la notion d’index


index des colonnes

Index(['PassengerId', 'Survived', 'Pclass', 'Name', 'Sex', 'Age', 'SibSp', 'Parch', 'Ticket', 'Fare', 'Cabin', 'Embarked'], dtype='str')
'PassengerId'

accès aux colonnes avec df[]

0 27.0 1 31.0 2 25.0 3 NaN Name: Age, dtype: float64
pandas.Series
Loading...

Copy on Write (CoW)

Pour optimiser cela (et ne pas passer son temps à recopier dans tous les sens), pandas utilise un pattern de programmation qui s’appelle le Copy on Write

Voyons ça sur un exemple: on part d’une grosse table et

  1. on extrait une série en faisant donc df[colname]

  2. immédiatement après on va écrire dans la série - ici on modifie la première valeur

  3. puis enfin on va modifier la deuxième valeur

vous allez voir que

et le résultat final, c’est qu’à la fin de tout ça, notre dataframe n’est pas modifiée !!
et c’est normal, car on a modifié une copie de nos données, pas la dataframe...

Loading...
CPU times: user 204 μs, sys: 0 ns, total: 204 μs
Wall time: 236 μs
3.83 μs ± 220 ns per loop (mean ± std. dev. of 7 runs, 100,000 loops each)
CPU times: user 3.22 s, sys: 6.74 ms, total: 3.23 s
Wall time: 3.24 s
CPU times: user 0 ns, sys: 249 μs, total: 249 μs
Wall time: 259 μs
Loading...

accès aux colonnes avec df.

0 27.00 1 31.00 2 25.00 3 NaN 4 24.00 ... 886 47.00 887 30.00 888 36.00 889 22.00 890 0.83 Name: Age, Length: 891, dtype: float64

type des colonnes pandas.Series

pandas.Series

indexer les lignes

Loading...
Loading...
Loading...

une série aussi possède un index

PassengerId 552 Sharp, Mr. Percival James R 638 Collyer, Mr. Harvey 499 Allison, Mrs. Hudson J C (Bessie Waldo Daniels) 261 Smith, Mr. Thomas 395 Sandstrom, Mrs. Hjalmar (Agnes Charlotta Bengt... ... 463 Gee, Mr. Arthur H 287 de Mulder, Mr. Theodore 326 Young, Miss. Marie Grice 396 Johansson, Mr. Erik 832 Richards, Master. George Sibley Name: Name, Length: 891, dtype: str
'Sharp, Mr. Percival James R'

différence entre index et indice

l’index des lignes

résumé à propos des types DataFrame et Series


forme et dimension de la table

(891, 11)
2

exercice basique

Le fichier data/petit-titanic.csv contient les 10 premières lignes de passagers
Attention ce n’est pas exactement le même format que data/titanic.csv

552;0;2;Sharp, Mr. Percival James R;male;27.0;0;0;244358;26.0;;S
638;0;2;Collyer, Mr. Harvey;male;31.0;1;1;C.A. 31921;26.25;;S
499;0;1;Allison, Mrs. Hudson J C (Bessie Waldo Daniels);female;25.0;1;2;113781;151.55;C22 C26;S
261;0;3;Smith, Mr. Thomas;male;;0;0;384461;7.75;;Q
395;1;3;Sandstrom, Mrs. Hjalmar (Agnes Charlotta Bengtsson);female;24.0;0;2;PP 9549;16.7;G6;S
811;0;3;Alexander, Mr. William;male;26.0;0;0;3474;7.8875;;S
758;0;2;Bailey, Mr. Percy Andrew;male;18.0;0;0;29108;11.5;;S
703;0;3;Barbara, Miss. Saiide;female;18.0;0;1;2691;14.4542;;C
406;0;2;Gale, Mr. Shadrach;male;34.0;1;0;28664;21.0;;S
641;0;3;Jensen, Mr. Hans Peder;male;20.0;0;0;350050;7.8542;;S
  1. lisez le contenu de ce fichier avec les paramètres par défaut de pandas.read_csv
    affichez les 2 premières lignes avec df.head()
    voyez-vous les trois problèmes ?
    essayez de les résoudre en lisant le help de la fonction help(pd.read_csv) ou pd.read_csv?
    ou passez à la question 2 pour être aidé

  1. passez le bon séparateur à la méthode pandas.read_csv
    indiquez lui que l’entête ne contient pas la liste des noms des colonnes
    passez-lui la liste des noms des colonnes puisqu’elles ne sont pas mentionnées dans le fichier (à récupérer plus haut)

  1. appliquer la méthode describe aux colonnes Age et Fare
    (ou plus exactement à une dataframe qui contient ces colonnes)

  1. affichez le nombre de colonnes et de lignes

  1. affichez les index des colonnes et des lignes

  1. modifiez l’index des colonnes par la liste

columns = ['Identifiant', 'Survécu', 'Pclass',
           'Nom', 'Genre', 'Age', 'SibSp', 'Parch',
           'Ticket', 'Tarif', 'Cabine', 'Embarquement']
  1. modifiez l’index des lignes par la colonne 'Identifiant'