為什麼 DataFrame 中的字串儲存為物件?
儘管將包含字串的 DataFrame 列明確轉換為字串資料類型,Python 的 Pandas 庫仍可能將它們報告為物件。這種差異是由於 NumPy 的底層資料結構所造成的。
NumPy 使用 ndarray 儲存資料數組,ndarray 中的每個元素都有固定的位元組數。對於整數(int64)和浮點數(float64),每個元素佔用8個位元組。然而,字串的長度是可變的,因此將它們直接儲存在 ndarray 中是不切實際的。
為了適應這一點,Pandas 使用物件 ndarray 來儲存指向物件的指標。這些物件包含實際的字串值。因此,物件 ndarray 具有不確定的大小,並表示為「物件」資料類型。
範例:
考慮一個包含四個64 位元的int64 陣列整數和一個包含四個指向三個字串物件的指標的物件陣列:
int64 array: | 1 | 2 | 3 | 4 | object array: | pointer to "hello" | pointer to "world" | pointer to "!" | Visualization: +---------+-----------+ | int64 | object | |---------+-----------| | 1 | hello | | 2 | world | | 3 | ! | | 4 | null | +---------+-----------+
在此表示中,int64 陣列佔用固定的空間量,每個元素為8 個位元組。另一方面,物件數組儲存指向不同大小的物件的指針,因此是“物件”資料類型。
以上是為什麼 Pandas DataFrame 中的字串在轉換後仍顯示為物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!