將包含缺失值的 Pandas DataFrame 轉換為 NumPy 陣列是資料分析中的常見任務。所需的輸出是讓 np.nan 代表缺失值。
此轉換的推薦方法是使用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中文網其他相關文章!