在 Pandas 中,dtype 物件表示包含物件的欄位。然而,當列中的所有元素都顯示為字串時,這可能會令人困惑。
物件資料型別源自 NumPy 的 ndarray 實作。在 NumPy 中,陣列必須具有統一大小(以位元組為單位)的元素。由於字串具有可變長度,Pandas 將字串儲存為指向物件 ndarray 中的物件的指標。這會產生物件資料類型。
考慮以下範例:
import numpy as np import pandas as pd # Create an int64 ndarray int_arr = np.array([1, 2, 3, 4], dtype=np.int64) # Create an object ndarray containing pointers to string objects obj_arr = np.array(['a', 'b', 'c', 'd'], dtype=object) # Convert obj_arr to a Pandas DataFrame df = pd.DataFrame({'int_col': int_arr, 'obj_col': obj_arr}) # Check data types print(df.dtypes)
輸出:
int_col int64 obj_col object
如您所見儘管所有元素都是字串,但由於ndarray 中使用了指針,obj_col 具有物件資料類型。
Pandas DataFrames 中的物件資料型別源自底層 ndarray 實作。雖然它包含字串,但請務必注意,字串並未明確表示為不同的資料類型。相反,它們被儲存為指向物件 ndarray 中的物件的指標。
以上是為什麼我的 Pandas DataFrame 僅包含字串的列具有物件資料類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!