Heim >Backend-Entwicklung >Python-Tutorial >Wie konvertiert man einen Pandas DataFrame mit fehlenden Werten effizient in ein NumPy-Array?

Wie konvertiert man einen Pandas DataFrame mit fehlenden Werten effizient in ein NumPy-Array?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-05 02:42:02794Durchsuche

How to efficiently convert a Pandas DataFrame with missing values into a NumPy array?

Pandas-Datenrahmen mit fehlenden Werten in NumPy-Array konvertieren

Die effizienteste Methode, einen Pandas-Datenrahmen mit fehlenden Werten in NumPy zu konvertieren Array erfolgt über df.to_numpy(). Es bietet mehrere Vorteile gegenüber älteren Methoden wie df.values, darunter:

  • Gibt konsistent eine Ansicht der zugrunde liegenden Daten zurückum den Speicherverbrauch zu minimieren.
  • Verarbeitet Erweiterungstypendurch Konvertierung in entsprechende NumPy-D-Typen.
  • Behält die ursprünglichen Datentypen beisofern nicht anders angegeben.

Beispiel:

<code class="python">import pandas as pd
import numpy as np

# Create a DataFrame with missing values
df = pd.DataFrame({'A': [np.nan, np.nan, 0.1, 0.1, 0.1, 0.1],
                   'B': [0.2, np.nan, 0.2, 0.2, np.nan, np.nan],
                   'C': [np.nan, 0.5, 0.5, np.nan, 0.5, np.nan]})

# Convert to a NumPy array with missing values represented as `np.nan`
array = df.to_numpy()

# Result:
# array([[ nan,  0.2,  nan],
#        [ nan,  nan,  0.5],
#        [ 0.1,  0.2,  0.5],
#        [ 0.1,  0.2,  nan],
#        [ 0.1,  nan,  0.5],
#        [ 0.1,  nan,  nan]])</code>

D-Typen beibehalten:

To_numpy unterstützt zwar nicht die direkte Beibehaltung von D-Typen, Sie können jedoch np.rec.fromrecords verwenden, um diesen Effekt zu erzielen.

<code class="python"># Create a DataFrame with mixed data types
df = pd.DataFrame({'A': [1, 2, 3],
                   'B': [4, 5, 6],
                   'C': [7.2, 8.1, 9.3]})

# Convert to a structured array with preserved Dtypes
struct_array = np.rec.fromrecords(
    df.reset_index(),
    names=list(df.columns) + ['index']
)

# Result:
# rec.array([('a', 1, 4, 7.2), ('b', 2, 5, 8.1), ('c', 3, 6, 9.3)],
#           dtype=[('index', '<U1'), ('A', '<i8'), ('B', '<i8'), ('C', '<f8')])</code>

Das obige ist der detaillierte Inhalt vonWie konvertiert man einen Pandas DataFrame mit fehlenden Werten effizient in ein NumPy-Array?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn