Heim  >  Artikel  >  Backend-Entwicklung  >  Wie konvertiere ich einen Pandas-DataFrame mit fehlenden Werten in ein NumPy-Array, das NaN beibehält?

Wie konvertiere ich einen Pandas-DataFrame mit fehlenden Werten in ein NumPy-Array, das NaN beibehält?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-05 02:27:02552Durchsuche

How to Convert a Pandas DataFrame with Missing Values to a NumPy Array Preserving NaN?

Pandas-Datenrahmen mit fehlenden Werten in NumPy-Array konvertieren

Problem

Konvertieren Sie einen Pandas-Datenrahmen mit fehlenden Werten in ein NumPy-Array und behalten Sie dabei die fehlenden Werte bei als np.nan. Betrachten Sie den folgenden Datenrahmen:

<code class="python">index = [1, 2, 3, 4, 5, 6, 7]
a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1]
b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan]
c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np.nan]
df = pd.DataFrame({'A': a, 'B': b, 'C': c}, index=index)
df = df.rename_axis('ID')

print(df)</code>

Ausgabe:

      A    B    C
ID
1   NaN  0.2  NaN
2   NaN  NaN  0.5
3   NaN  0.2  0.5
4   0.1  0.2  NaN
5   0.1  0.2  0.5
6   0.1  NaN  0.5
7   0.1  NaN  NaN

Lösung mit df.to_numpy()

Verwenden Sie die Methode to_numpy(), um den Datenrahmen in a zu konvertieren NumPy-Array mit fehlenden Werten, dargestellt als np.nan:

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

np_array = df.to_numpy()

print(np_array)</code>

Ausgabe:

[[ nan  0.2  nan]
 [ nan  nan  0.5]
 [ nan  0.2  0.5]
 [ 0.1  0.2  nan]
 [ 0.1  0.2  0.5]
 [ 0.1  nan  0.5]
 [ 0.1  nan  nan]]

Datentypen beibehalten

Wenn Sie die Datentypen im resultierenden Array beibehalten müssen, verwenden Sie DataFrame.to_records (), um eine NumPy-Struktur zu erstellen Array:

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

structured_array = df.to_records()

print(structured_array)</code>

Ausgabe:

rec.array([('a', 1, 4, 7), ('b', 2, 5, 8), ('c', 3, 6, 9)],
          dtype=[('ID', 'O'), ('A', '<i8'), ('B', '<i8'), ('B', '<i8')])

Das obige ist der detaillierte Inhalt vonWie konvertiere ich einen Pandas-DataFrame mit fehlenden Werten in ein NumPy-Array, das NaN beibehält?. 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