Converti NumPy Array in Pandas DataFrame

Suraj Joshi 25 aprile 2021
Converti NumPy Array in Pandas DataFrame

Questo tutorial spiega come convertire un array numpy in un Pandas DataFrame usando il metodo pandas.DataFrame().

Passiamo l’array numpy nel metodo pandas.DataFrame() per generare Pandas DataFrame da array NumPy. Possiamo anche specificare nomi di colonne e indici di riga per DataFrame.

Converti NumPy Array in Pandas DataFrame usando il metodo pandas.DataFrame()

Passiamo l’array NumPy nel metodo pandas.DataFrame() per generare il DataFrame dall’array 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)

Produzione:

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

Per prima cosa crea un array casuale di dimensione (4,3) con 4 righe e 3 colonne. Quindi passiamo l’array come argomento al metodo pandas.DataFrame(), che genera DataFrame chiamato data_df dall’array. Per impostazione predefinita, il metodo pandas.DataFrame() inserirà nomi di colonna e indici di riga predefiniti.

Possiamo anche impostare i nomi delle colonne e gli indici delle righe usando i parametri index e columns del metodo 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)

Produzione:

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

Qui, impostiamo il valore di index su row_indices, una lista contenente gli indici di ciascuna riga. Allo stesso modo, assegniamo i nomi delle colonne impostando il valore di columns alla lista column_names, che contiene il nome di ciascuna colonna.

In alcuni casi, l’array NumPy stesso può contenere indici di riga e nomi di colonna. Quindi utilizziamo lo slicing dell’array per estrarre i dati, gli indici di riga e i nomi delle colonne dall’array.

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)

Produzione:

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

Abbiamo indici di riga e nomi di colonna nell’array NumPy stesso. Selezioniamo tutti i valori dopo la prima riga e la prima colonna e li forniamo come argomento data alla funzione pandas.DataFrame() e selezioniamo tutti i valori della prima colonna dalla seconda riga e li passiamo come un index discussione. Allo stesso modo, selezioniamo tutti i valori della prima riga dalla seconda colonna e lo passiamo come argomento columns per impostare i nomi delle colonne.

numpy.array() convertirà i valori interi in valori stringa mentre crea un array NumPy per garantire lo stesso formato dei dati dell’array. Usiamo la funzione numpy.int_() per riconvertire i valori dei dati nel tipo integer.

Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Pandas DataFrame