Page 4 sur 8
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: |
|
|
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?