首頁 > 後端開發 > Python教學 > 如何將缺失值的 Pandas DataFrame 轉換為 NumPy 陣列?

如何將缺失值的 Pandas DataFrame 轉換為 NumPy 陣列?

Linda Hamilton
發布: 2024-11-04 12:17:29
原創
592 人瀏覽過

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

將包含缺失值的 Pandas DataFrame 轉換為 NumPy 陣列

將包含缺失值的 Pandas DataFrame 轉換為 NumPy 陣列是資料分析中的常見任務。所需的輸出是讓 np.nan 代表缺失值。

使用df.to_numpy()

此轉換的推薦方法是使用df.to_numpy() 方法:

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

# Create a DataFrame with missing values
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)

# Convert to NumPy array
np_array = df.to_numpy()
print(np_array)</code>
登入後複製

這將輸出:

<code class="python">array([[ 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]])</code>
登入後複製

保留數據類型

要保留輸出NumPy 數組中的數據類型,可以使用df.to_records() 方法:

<code class="python">records = df.to_records()
print(records.dtype)</code>
登入後複製

這將輸出:

<code class="python">[('index', 'O'), ('A', '<f8'), ('B', '<f8'), ('C', '<f8')]</code>
登入後複製

其中O代表物件類型(索引),f8代表float64型別(

使用np.rec.fromrecords,您可以將記錄轉換為結構化NumPy 陣列:

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

np_array = np.rec.fromrecords(records, names=df.columns)
print(np_array.dtype)</code>
登入後複製

這將輸出與記錄相同的資料類型。

以上是如何將缺失值的 Pandas DataFrame 轉換為 NumPy 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板