Heim > Backend-Entwicklung > Python-Tutorial > 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
Freigeben: 2024-11-05 02:27:02
Original
693 Leute haben es durchsucht

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>
Nach dem Login kopieren

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
Nach dem Login kopieren

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>
Nach dem Login kopieren

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]]
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ausgabe:

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

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!

Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage