M55 - Data Science & Scientific Computing 5
  1.   Exercices
  2. Premières manipulations
  • M55 - Data Science and Scientific Computing 5

  • Syllabus

  •   Cours
    • Introduction
    • Series
    • Data Frames
    • Une analyse complète : le Titanic

  •   Exercices
    • Premières manipulations
    • Notes L3 Math
    • Population France
    • Netflix User
    • Presidentielles USA 2016

  •   Fichiers sources

Contenu de la page

  • 1 Exercice : premières manipulations de Series
  • 2 Exercice : premières manipulations de DataFrame
  • 3 Exercice : dict de dict en DataFrame
  1.   Exercices
  2. Premières manipulations

Premières manipulations avec Pandas

Auteur·rice

Gloria FACCANONI

Date de publication

30 novembre 2024

1 Exercice : premières manipulations de Series

  • Construire la Series suivante :

  • Modifier la valeur de value à 10 pour l’élément en position 3.
  • Afficher les éléments avec value supérieur à 5.
  • Modifier la valeur de value à 0 pour les éléments avec un value inférieur à 5.
  • Ajouter un élément avec un value de 3.5 à la Serie.
  • Modifier les indices de la Serie pour qu’ils soient des lettres de l’alphabet.
import pandas as pd

# help(pd.Series)
# creation et affichage de la serie
# s = pd.Series([12, -4, 7, 9])
s = pd.Series(data=[12, -4, 7, 9])
s
0    12
1    -4
2     7
3     9
dtype: int64
# affichage des valeurs de la serie
s.values
array([12, -4,  7,  9])
# modification de la valeur de l'element d'indice 3
s[3] = 10
s
0    12
1    -4
2     7
3    10
dtype: int64
# filtre sur les valeurs de la serie
display(s>5)
display(s[ s>5 ])
0     True
1    False
2     True
3     True
dtype: bool
0    12
2     7
3    10
dtype: int64
# filtre sur les valeurs de la serie et modification des valeurs
s[ s<5 ] = 0
s
0    12
1     0
2     7
3    10
dtype: int64
# display(s)
# s[len(s)] = 100
# display(s)
# ajout d'une valeur à la serie (plus precisement, concatenantion de deux series dont une contenant une seule valeur)
L = pd.Series([3.5])
# s = pd.concat( [s,L] ) # PB !!!! deux fois le même index
s = pd.concat( [s,L] , ignore_index=True)
s 
0    12.0
1     0.0
2     7.0
3    10.0
4     3.5
dtype: float64
# changement des indices
s.index = ['a', 'b', 'c', 'd', 'e']
s
a    12.0
b     0.0
c     7.0
d    10.0
e     3.5
dtype: float64

2 Exercice : premières manipulations de DataFrame

  • Construire le DataFrame suivant :

  • Afficher les lignes correspondant aux objets dont le prix est supérieur ou égale à 1.
  • Modifier le prix de l’objet “eraser” pour le passer à 0.2.

La construction du DataFrame peut se faire en deux étapes. D’abord, on crée un dictionnaire avec les données, puis on crée le DataFrame à partir de ce dictionnaire.

import pandas as pd

# un dictionaire de listes, chaque liste representant une colonne
data = {'color' :  ['red', 'green', 'blue', 'yellow', 'black'],
        'object' : ['pen', 'pencil', 'marker', 'eraser', 'ruler'],
        'price' :  [1.2, 0.6, 1.0, 0.7, 1.5]}

df = pd.DataFrame(data)
df
color object price
0 red pen 1.2
1 green pencil 0.6
2 blue marker 1.0
3 yellow eraser 0.7
4 black ruler 1.5

On va séléctionner les lignes du DataFrame en utilisant un masque :

df[ df['price'] > 1.0 ]
color object price
0 red pen 1.2
4 black ruler 1.5
# pour comprendre
df['price'] > 1.0
# Dans la sortie on voit l'indice de la ligne et un booléen qui indique si la condition est vraie ou fausse pour cette ligne
0     True
1    False
2    False
3    False
4     True
Name: price, dtype: bool

On va modifier la valeur d’une cellule : avec .loc on peut accéder à une cellule en utilisant les indices de la ligne et de la colonne. Pour trouver l’indice de la ligne correspondant à l’objet “eraser”, on peut utiliser un masque.

df.loc[ df['object']=='eraser', 'price' ] = 0.2
df
color object price
0 red pen 1.2
1 green pencil 0.6
2 blue marker 1.0
3 yellow eraser 0.2
4 black ruler 1.5

Pour comprendre:

df['object']=='eraser'
0    False
1    False
2    False
3     True
4    False
Name: object, dtype: bool
df.loc[ df['object']=='eraser', : ]
color object price
3 yellow eraser 0.2

3 Exercice : dict de dict en DataFrame

Transformer en dataframe le dictionnaire de dictionnaires suivant:

pop = {'Nevada': {2001: 2.4, 2002: 2.9},
       'Ohio'  : {2000: 1.5, 2001: 1.7, 2002: 3.6}}

Une autre forme courante de données est un dictionnaire qui contient plusieurs autres dictionnaires. Si le dictionnaire priciapl est passé au DataFrame, pandas interprétera les clés du dictionnaire extérieur comme étant les colonnes, et les clés intérieures comme étant les indices des lignes :

import pandas as pd

pop = {'Nevada': {2001: 2.4, 2002: 2.9},
       'Ohio'  : {2000: 1.5, 2001: 1.7, 2002: 3.6}}

pd.DataFrame(data=pop)
Nevada Ohio
2001 2.4 1.7
2002 2.9 3.6
2000 NaN 1.5
Retour au sommet
Notes L3 Math

© Copyright 2024, Gloria Faccanoni

 

This page is built with ❤️ and Quarto.