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

如何將帶有缺失值的 Pandas DataFrame 轉換為保留 NaN 的 NumPy 陣列?

Patricia Arquette
發布: 2024-11-05 02:27:02
原創
627 人瀏覽過

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

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

問題

將帶有缺失值的Pandas 資料框轉換為NumPy數組,保留缺失值為np.nan。考慮以下資料幀:

<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>
登入後複製

輸出:

      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
登入後複製

使用df.to_numpy() 的解決方案

使用to_numpy() 方法將資料幀轉換為缺失值表示為np.nan 的NumPy 陣列:

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

np_array = df.to_numpy()

print(np_array)</code>
登入後複製

輸出:

[[ 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]]
登入後複製

保留資料型別

如果需要保留結果陣列,使用DataFrame.to_records () 建立NumPy 結構化陣列:

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

structured_array = df.to_records()

print(structured_array)</code>
登入後複製

輸出:

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

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

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