需要注意的是,df.values在目前版本的pandas中不會被棄用,但是建議對新程式碼使用df.to_numpy() 並儘快遷移到較新的API可能。
要將 pandas 資料幀轉換為 NumPy 陣列時保留資料類型,可以使用 DataFrame.to_records() 方法。
將pandas 導入為pd將numpy 導入為np<p><br>索引= [1, 2, 3, 4, 5, 6, 7]<br>a = [np.nan, np.nan, np.nan, 0.1, 0.1, 0.1, 0.1] <br>b = [0.2, np.nan, 0.2, 0.2, 0.2, np.nan, np.nan]<br>c = [np.nan, 0.5, 0.5, np.nan, 0.5, 0.5, np. nan]<br>df = pd.DataFrame({'A': a, 'B': b, 'C': c},index=index)</p>df = df.rename_axis('ID')<h1></h1>將DataFrame 轉換為保留dtypes 的NumPy 陣列<p></p>array = df.to_records()<h1></h1>array = df.to_records()<p><br>array = df.to_records()<br><br>array = df.to_records()<br></p>array = df.to_records()<pre class="brush:php;toolbar:false"> [1, 'a', nan, 0.2, nan], [2, 'b', nan, nan, 0.5], [3, 'c', nan, 0.2, 0.5], [4, 'd', 0.1, 0.2, nan], [5, 'e', 0.1, 0.2, 0.5], [6, 'f', 0.1, nan, 0.5], [7, 'g', 0.1, nan, nan]), dtype=[('ID', '<i8'), ('index', 'O'), ('A', '<f8'), ('B', '<f8'), ('C', '<f8')])
array = df.to_records()
程式碼輸出如下:
rec.array([('ID' , '索引', 'A', 'B', 'C')]
如您所見,NumPy 數組保留 DataFrame 中列的 dtypes。
以上是如何有效率地將 Pandas DataFrame 轉換為 NumPy 陣列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!