NumPy Array in Pandas DataFrame umwandeln

Suraj Joshi 17 Februar 2021
NumPy Array in Pandas DataFrame umwandeln

Dieses Tutorial erklärt, wie wir ein NumPy-Array mit der Methode pandas.DataFrame() in einen Pandas DataFrame umwandeln.

Wir übergeben das NumPy-Array an die Methode pandas.DataFrame(), um Pandas DataFrames aus NumPy-Arrays zu erzeugen. Wir können auch Spaltennamen und Zeilenindizes für den DataFrame angeben.

Konvertieren eines NumPy-Arrays in einen Pandas DataFrame mit der Methode pandas.DataFrame()

Wir übergeben das NumPy-Array an die Methode pandas.DataFrame(), um den DataFrame aus dem NumPy-Array zu erzeugen.

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)

Ausgabe:

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

Es wird zunächst ein zufälliges Array der Größe (4,3) mit 4 Zeilen und 3 Spalten erzeugt. Dann übergeben wir das Array als Argument an die Methode pandas.DataFrame(), die aus dem Array einen DataFrame namens data_df erzeugt. Standardmäßig fügt die Methode pandas.DataFrame() Standard-Spaltennamen und Zeilenindizes ein.

Wir können die Spaltennamen und Zeilenindizes auch mit den Parametern index und columns der Methode pandas.DataFrame() festlegen.

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)

Ausgabe:

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

Hier setzen wir den Wert von index auf row_indices, eine Liste mit den Indizes der einzelnen Zeilen. In ähnlicher Weise weisen wir Spaltennamen zu, indem wir den Wert von columns auf die Liste column_names setzen, die den Namen jeder Spalte enthält.

In einigen Fällen kann das NumPy-Array selbst Zeilenindizes und Spaltennamen enthalten. Dann verwenden wir Array-Slicing, um die Daten, Zeilenindizes und Spaltennamen aus dem Array zu extrahieren.

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)

Ausgabe:

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

Wir haben Zeilenindizes und Spaltennamen im NumPy-Array selbst. Wir wählen alle Werte nach der ersten Zeile und der ersten Spalte aus und übergeben sie als data-Argument an die Funktion pandas.DataFrame(), und wählen alle Werte der ersten Spalte aus der zweiten Zeile aus und übergeben sie als index-Argument. In ähnlicher Weise wählen wir alle Werte der ersten Zeile aus der zweiten Spalte aus und übergeben sie als Argument columns, um die Spaltennamen zu setzen.

Das numpy.array() konvertiert die Integer-Werte in String-Werte, während es ein NumPy-Array erstellt, um das gleiche Datenformat des Arrays zu gewährleisten. Wir verwenden die Funktion numpy.int_(), um die Datenwerte wieder in den Typ Integer zu konvertieren.

Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Pandas DataFrame