Index de l'article

Découvertes des données avec Pandas

Voyons ici ce que pandas peut faire avec un csv. Le csv que j'utilise est le nat2019_simpifié de la page d'avant. L'idée est de tester mes essais sur les 143 lignes avant de me lancer dans les méandres du 1/2 million de lignes du fichier source!

  • Attention, vous devez avoir installé la bibliothèque pandas dans votre IDE!!!
    Pour vous aider voir ici.
Vous pouvez le télécharger puis le lire en local en utilisant ceci si le csv et le programme sont dans le même dossier: Mais vous pouvez aussi utiliser cela pour impressionner vos parents:
import pandas as pd
donnees = pd.read_csv("nat2019_simplifie.csv", sep=";",encoding="utf-8")
import pandas as pd
url="https://www.ipa-troulet.fr/cours/attachments/article/577/nat2019_simplifie.csv"
donnees = pd.read_csv(url, sep=";",encoding="utf-8")

 

Tester puis comprendre le script suivant

Ma préférence allant à l'accès à distance, je déclare l'url dans la variable texte url puis l'utilise dans la commande pandas pd.read_csv()  d'ou ce script...

Pour faciliter la lecture du résultat vous noterez les print("n°").

#ceci est un script
#ouverture du csv et creation d'un dataFrame
import pandas as pd
url="https://www.ipa-troulet.fr/cours/attachments/article/577/nat2019_simplifie.csv"
donnees = pd.read_csv(url, sep=";",encoding="utf-8")
#
print("1 donnees est un dataframe")
print(type(donnees))
print(len(donnees))
print()


print("2 types de données dans la table")
print(donnees.dtypes) 
print()

print("3 index ou champs (étiquettes) de la table")
print(donnees.columns) 
print()

print("4 étendue (nbre de lignes avec les étiquettes) de la table")
print(donnees.index) 
print()

print("5 affichage des premières et dernières lignes")
print(donnees) 
print()

print("5 affichage des premières et dernières lignes")
print(donnees.describe) 
print()

print("6 affichage toutes les valeurs")
print(donnees.values) 
print()

print("7 transforme le dataframe en list")
maliste=donnees.values.tolist()
print(maliste) 
print()

print("8 affichage d'un élément")
print(donnees.values[0])
print(donnees.values[0][1])
print(maliste[0][2])
print()

 

Explication de texte du résultat

A la lecture du résultat du dessus, faire attention à :

  • donnees est un dataframe de 142 lignes de données n° de 0 à 141, le len(donnees) me le confirme!
  • la première ligne du csv est transformée en index et n'est pas décomptée
  • je peux transformer mon dataframe en list (voir le 7)
\\ Attention ceci n'est pas un script//

>>> %Run 'python dpt2019 simplifie.py'
1 donnees est un dataframe
<class 'pandas.core.frame.DataFrame'>
142

2 types de données dans la table
sexe         int64
preusuel    object
annais      object
nombre       int64
dtype: object

3 index ou champs (étiquettes) de la table
Index(['sexe', 'preusuel', 'annais', 'nombre'], dtype='object')

4 étendue (nbre de lignes avec les étiquettes) de la table
RangeIndex(start=0, stop=142, step=1)

5 affichage des premières et dernières lignes
     sexe preusuel annais  nombre
0       1     INDY   2013       3
1       1     INDY   2014       6
2       1     INDY   2016       4
3       1     INDY   2017       7
4       1     INDY   2018      10
..    ...      ...    ...     ...
137     2   JEANNE   1901   14963
138     2   JEANNE   1902   14927
139     2   JEANNE   1903   15017
140     2   JEANNE   1904   14908
141     2   JEANNE   1905   15114

[142 rows x 4 columns]

5 affichage des premières et dernières lignes
<bound method NDFrame.describe of      sexe preusuel annais  nombre
0       1     INDY   2013       3
1       1     INDY   2014       6
2       1     INDY   2016       4
3       1     INDY   2017       7
4       1     INDY   2018      10
..    ...      ...    ...     ...
137     2   JEANNE   1901   14963
138     2   JEANNE   1902   14927
139     2   JEANNE   1903   15017
140     2   JEANNE   1904   14908
141     2   JEANNE   1905   15114

[142 rows x 4 columns]>

6 affichage toutes les valeurs
[[1 'INDY' '2013' 3]
 [1 'INDY' '2014' 6]
 [1 'INDY' '2016' 4]
 [1 'INDY' '2017' 7]
 [1 'INDY' '2018' 10]
 [1 'INDY' '2019' 4]
 [1 'INDY' 'XXXX' 11]
 [1 'INEL' '1917' 3]
 [1 'INEL' '1922' 3]
 [1 'INEL' '1925' 3]

(J'ai suppr qq lignes mais elles y sont toutes)

 [2 'JEANNA' '2004' 3]
 [2 'JEANNA' '2005' 4]
 [2 'JEANNA' '2006' 4]
 [2 'JEANNA' '2009' 3]
 [2 'JEANNA' '2010' 5]
 [2 'JEANNA' '2011' 6]
 [2 'JEANNA' '2012' 6]
 [2 'JEANNA' '2013' 5]
 [2 'JEANNA' '2014' 5]
 [2 'JEANNA' '2015' 10]
 [2 'JEANNA' '2016' 6]
 [2 'JEANNA' '2017' 7]
 [2 'JEANNA' '2018' 9]
 [2 'JEANNA' '2019' 6]
 [2 'JEANNA' 'XXXX' 42]
 [2 'JEANNE' '1900' 13981]
 [2 'JEANNE' '1901' 14963]
 [2 'JEANNE' '1902' 14927]
 [2 'JEANNE' '1903' 15017]
 [2 'JEANNE' '1904' 14908]
 [2 'JEANNE' '1905' 15114]]

7 transforme le dataframe en list
[[1, 'INDY', '2013', 3], [1, 'INDY', '2014', 6], [1, 'INDY', '2016', 4], [1, 'INDY', '2017', 7], [1, 'INDY', '2018', 10], [1, 'INDY', '2019', 4], [1, 'INDY', 'XXXX', 11], [1, 'INEL', '1917', 3], [1, 'INEL', '1922', 3], [1, 'INEL', '1925', 3], [1, 'INEL', '1926', 3], [1, 'INEL', '1930', 3], [1, 'INEL', '1932', 4], [1, 'INEL', '1934', 6], [1, 'INEL', '1937', 3], [1, 'INEL', '1938', 8], [1, 'INEL', '1939', 6], [1, 'INEL', '1940', 5], [1, 'INEL', '1941', 7], [1, 'INEL', '1942', 3], [1, 'INEL', '1943', 3], [1, 'INEL', '1944', 4], [1, 'INEL', '1945', 4], [1, 'INEL', '1947', 4], [1, 'INEL', '1948', 3], [1, 'INEL', '1950', 3], [1, 'INEL', '1951', 4], [1, 'INEL', '1952', 7], [1, 'INEL', '1953', 4], [1, 'INEL', '1954', 4], [1, 'LILAN', '2009', 3], [1, 'LILAN', 'XXXX', 19], [1, 'LILIAM', '2005', 3],
J'ai suppr aussi des données
[2, 'JEANNA', '1924', 4], [2, 'JEANNA', '1929', 3], [2, 'JEANNA', '1932', 3], [2, 'JEANNA', '1985', 9], [2, 'JEANNA', '1986', 7], [2, 'JEANNA', '1987', 3], [2, 'JEANNA', '1988', 11], [2, 'JEANNA', '1989', 5], [2, 'JEANNA', '1990', 5], [2, 'JEANNA', '1991', 3], [2, 'JEANNA', '1992', 3], [2, 'JEANNA', '1996', 3], [2, 'JEANNA', '1997', 3], [2, 'JEANNA', '1999', 3], [2, 'JEANNA', '2003', 4], [2, 'JEANNA', '2004', 3], [2, 'JEANNA', '2005', 4], [2, 'JEANNA', '2006', 4], [2, 'JEANNA', '2009', 3], [2, 'JEANNA', '2010', 5], [2, 'JEANNA', '2011', 6], [2, 'JEANNA', '2012', 6], [2, 'JEANNA', '2013', 5], [2, 'JEANNA', '2014', 5], [2, 'JEANNA', '2015', 10], [2, 'JEANNA', '2016', 6], [2, 'JEANNA', '2017', 7], [2, 'JEANNA', '2018', 9], [2, 'JEANNA', '2019', 6], [2, 'JEANNA', 'XXXX', 42], [2, 'JEANNE', '1900', 13981], [2, 'JEANNE', '1901', 14963], [2, 'JEANNE', '1902', 14927], [2, 'JEANNE', '1903', 15017], [2, 'JEANNE', '1904', 14908], [2, 'JEANNE', '1905', 15114]]

8 affichage d'un élément
sexe
[1 'INDY' '2013' 3]
INDY
2013

 

Bilan

Ok, je peux donc rapidement comprendre le contenu d'un fichier csv avec quelques commandes. J'ai confiance, pas vous?

 

Pièce(s) jointe(s)
Download this file (nat2019.csv)nat2019.csv[ ]11599 kB
Download this file (nat2019_simplifie.csv)nat2019_simplifie.csv[ ]2 kB