Convertir NumPy Array en Pandas DataFrame

Suraj Joshi 21 février 2021
Convertir NumPy Array en Pandas DataFrame

Ce tutoriel explique comment convertir un tableau numpy en un Pandas DataFrame en utilisant la méthode pandas.DataFrame().

Nous passons le tableau numpy dans la méthode pandas.DataFrame() pour générer des Pandas DataFrames à partir de tableaux NumPy. Nous pouvons également spécifier des noms de colonnes et des index de lignes pour le DataFrame.

Convertir le tableau NumPy en Pandas DataFrame en utilisant la méthode pandas.DataFrame()

Nous passons le tableau NumPy dans la méthode pandas.DataFrame() pour générer le DataFrame à partir du tableau NumPy.

from numpy import random
import pandas as pd

random.seed(5)
random.randint(100, size=(3, 5))
data_array = random.randint(100, size=(4, 3))

print("NumPy Data Array is:")
print(data_array)

print("")

data_df = pd.DataFrame(data_array)
print("The DataFrame generated from the NumPy array is:")
print(data_df)

Production :

NumPy Data Array is:
[[27 44 77]
 [75 65 47]
 [30 84 86]
 [18  9 41]]

The DataFrame generated from the NumPy array is:
    0   1   2
0  27  44  77
1  75  65  47
2  30  84  86
3  18   9  41

Elle crée d’abord un tableau aléatoire de taille (4,3) avec 4 lignes et 3 colonnes. Nous passons ensuite le tableau en argument à la méthode pandas.DataFrame(), qui génère un DataFrame nommé data_df à partir du tableau. Par défaut, la méthode pandas.DataFrame() va insérer les noms de colonnes et les index de lignes par défaut.

Nous pouvons également définir les noms de colonnes et les index de lignes en utilisant les paramètres index et columns de la méthode pandas.DataFrame().

from numpy import random
import pandas as pd

random.seed(5)
random.randint(100, size=(3, 5))
data_array = random.randint(100, size=(4, 3))
row_indices = ["Row_1", "Row_2", "Row_3", "Row_4"]
column_names = ["Column_1", "Column_2", "Column_3"]

print("NumPy Data Array is:")
print(data_array)

print("")

data_df = pd.DataFrame(data_array, index=row_indices, columns=column_names)
print("The DataFrame generated from the NumPy array is:")
print(data_df)

Production :

NumPy Data Array is:
[[27 44 77]
 [75 65 47]
 [30 84 86]
 [18  9 41]]

The DataFrame generated from the NumPy array is:
       Column_1  Column_2  Column_3
Row_1        27        44        77
Row_2        75        65        47
Row_3        30        84        86
Row_4        18         9        41

Ici, nous fixons la valeur de index à row_indices, une liste contenant les index de chaque ligne. De même, nous assignons des noms de colonnes en fixant la valeur de columns à la liste column_names, qui contient le nom de chaque colonne.

Dans certains cas, le tableau NumPy lui-même peut contenir des indices de lignes et des noms de colonnes. Nous utilisons alors le découpage en tableau pour extraire les données, les index de lignes et les noms de colonnes du tableau.

import numpy as np
import pandas as pd

marks_array = np.array(
    [["", "Mathematics", "Economics"], ["Sunny", 25, 23], ["Alice", 23, 24]]
)

print("NumPy Data Array is:")
print(marks_array)

print("")

row_indices = marks_array[1:, 0]
column_names = marks_array[0, 1:]
data_df = pd.DataFrame(
    data=np.int_(marks_array[1:, 1:]), index=row_indices, columns=column_names
)

print("The DataFrame generated from the NumPy array is:")
print(data_df)

Production :

NumPy Data Array is:
[['' 'Mathematics' 'Economics']
 ['Sunny' '25' '23']
 ['Alice' '23' '24']]

The DataFrame generated from the NumPy array is:
       Mathematics  Economics
Sunny           25         23
Alice           23         24

Nous avons des index de lignes et des noms de colonnes dans le tableau NumPy lui-même. Nous sélectionnons toutes les valeurs après la première ligne et la première colonne et nous les fournissons comme argument data à la fonction pandas.DataFrame(), et nous sélectionnons toutes les valeurs de la première colonne de la deuxième ligne et nous les passons comme argument index. De même, nous sélectionnons toutes les valeurs de la première ligne de la deuxième colonne et nous les passons en argument columns pour définir les noms des colonnes.

Le numpy.array() convertira les valeurs entières en valeurs de chaîne tout en faisant un tableau NumPy pour assurer le même format de données. Nous utilisons la fonction numpy.int_() pour reconvertir les valeurs des données en type integer.

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Pandas DataFrame