首頁  >  文章  >  後端開發  >  如何使用「df.to_numpy()」將缺失值的 Pandas DataFrame 轉換為 NumPy 陣列並保留資料類型?

如何使用「df.to_numpy()」將缺失值的 Pandas DataFrame 轉換為 NumPy 陣列並保留資料類型?

Linda Hamilton
Linda Hamilton原創
2024-11-06 03:57:02731瀏覽

How can I convert a Pandas DataFrame with missing values into a NumPy array using `df.to_numpy()` and preserve data types?

將帶有缺失值的Pandas 資料框轉換為NumPy 陣列

使用df.to_numpy()

將帶有缺失值的Pandas資料框轉換為NumPy np.nan 代表缺失值的數組,請使用df.to_numpy() 方法。它提供了一種一致且可靠的方法來從資料幀和索引/系列物件中獲取 NumPy 數組。

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

df = pd.DataFrame({
    "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],
}, index=[1, 2, 3, 4, 5, 6, 7])

np_array = df.to_numpy()
print(np_array)</code>

這將輸出一個NumPy 數組,其中缺失值表示為np.nan:

[[ 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]]

保留資料類型

要保留NumPy 數組中的資料類型,請使用np.rec.fromrecords() 函數:

<code class="python">v = df.reset_index()
np_array_dtypes = np.rec.fromrecords(v, names=v.columns.tolist())
print(np_array_dtypes)</code>

這將輸出帶有原始資料的NumPy 陣列保留的資料類型如下:

rec.array([('1', 1, 0.2, 0.5), ('2', 2, np.nan, 0.5), ('3', 3, 0.2, 0.5),
           ('4', 4, 0.2, np.nan), ('5', 5, 0.2, 0.5), ('6', 6, np.nan, 0.5),
           ('7', 7, np.nan, np.nan)],
          dtype=[('index', '<U1'), ('A', '<f8'), ('B', '<f8'), ('C', '<f8')])

以上是如何使用「df.to_numpy()」將缺失值的 Pandas DataFrame 轉換為 NumPy 陣列並保留資料類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn