Comment créer un DataFrame Pandas avec des données aléatoires
Vous pouvez utiliser la syntaxe de base suivante pour créer un DataFrame pandas rempli d’entiers aléatoires :
df = pd.DataFrame(np.random.randint(0,100,size=(10, 3)), columns=list('ABC'))
Cet exemple particulier crée un DataFrame avec 10 lignes et 3 colonnes où chaque valeur du DataFrame est un entier aléatoire compris entre 0 et 100 .
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Exemple 1 : Créer un DataFrame Pandas avec des données aléatoires
Le code suivant montre comment créer un DataFrame pandas avec 10 lignes et 3 colonnes où chaque valeur du DataFrame est un entier aléatoire compris entre 0 et 100 :
import pandas as pd import numpy as np #create DataFrame df = pd.DataFrame(np.random.randint(0,100,size=(10, 3)), columns=list('ABC')) #view DataFrame print(df) A B C 0 72 70 27 1 87 85 7 2 4 42 84 3 85 87 63 4 79 72 30 5 96 99 79 6 26 47 90 7 35 69 56 8 42 47 0 9 97 4 59
Notez que chaque fois que vous exécutez ce code, les entiers aléatoires du DataFrame seront différents.
Si vous souhaitez créer un exemple reproductible dans lequel les entiers aléatoires sont les mêmes à chaque fois, vous pouvez utiliser le morceau de code suivant immédiatement avant de créer le DataFrame :
np.random.seed(0)
Désormais, chaque fois que vous exécutez le code, les entiers aléatoires dans le DataFrame seront les mêmes.
Exemple 2 : ajouter une colonne de données aléatoires à un DataFrame existant
Supposons que nous ayons le DataFrame pandas existant suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'points': [18, 22, 19, 14, 14, 11, 20, 28], 'assists': [5, 7, 7, 9, 12, 9, 9, 4], 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print(df) team points assists rebounds 0 A 18 5 11 1 B 22 7 8 2 C 19 7 10 3 D 14 9 6 4 E 14 12 6 5 F 11 9 5 6 G 20 9 9 7 H 28 4 12
Nous pouvons utiliser le code suivant pour ajouter une nouvelle colonne appelée « rand » qui contient des entiers aléatoires entre 0 et 100 :
import numpy as np #add 'rand' column that contains 8 random integers between 0 and 100 df['rand'] = np.random.randint(0,100,size=(8, 1)) #view updated DataFrame print(df) team points assists rebounds rand 0 A 18 5 11 47 1 B 22 7 8 64 2 C 19 7 10 82 3 D 14 9 6 99 4 E 14 12 6 88 5 F 11 9 5 49 6 G 20 9 9 29 7 H 28 4 12 19
Notez que la nouvelle colonne « rand » a été ajoutée au DataFrame existant.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :
Comment imputer les valeurs manquantes chez les pandas
Comment remplacer les valeurs NaN par zéro dans Pandas
Comment vérifier si la cellule est vide dans Pandas