pandas 陣列、純量和資料類型#
物件#
對於大多數資料類型,pandas 使用 NumPy 陣列作為具體物件,其中包含 Index
、Series
或 DataFrame
。
對於某些資料類型,pandas 會延伸 NumPy 的類型系統。這些類型的字串別名可以在 dtypes 中找到。
資料類型 |
pandas 資料類型 |
純量 |
陣列 |
---|---|---|---|
有時區感知的日期時間 |
|||
時間增量 |
(無) |
||
期間 (時間跨度) |
|||
區間 |
|||
可為 Null 的整數 |
|
(無) |
|
可為 Null 的浮點數 |
|
(無) |
|
類別 |
(無) |
||
稀疏 |
(無) |
||
字串 |
|||
可為 Null 的布林值 |
|||
PyArrow |
Python 純量或 |
pandas 和第三方函式庫可以延伸 NumPy 的類型系統 (請參閱 延伸類型)。頂層 array()
方法可用於建立新的陣列,該陣列可以儲存在 Series
、Index
中,或作為 DataFrame
中的欄位。
|
建立陣列。 |
PyArrow#
警告
此功能為實驗性質,且 API 可能在未來版本中不經警告而變更。
arrays.ArrowExtensionArray
由 pyarrow.ChunkedArray
搭配 pyarrow.DataType
支援,而非 NumPy 陣列和資料類型。arrays.ArrowExtensionArray
的 .dtype
是 ArrowDtype
。
Pyarrow 提供與 NumPy 類似的陣列和 資料類型 支援,包括對所有資料類型的一流可空性支援、不可變性等。
下表顯示 pandas 識別的等效 pyarrow 支援 (pa
)、pandas 延伸和 numpy (np
) 類型。以下 pyarrow 支援的類型需要傳遞至 ArrowDtype
才能讓 pandas 識別,例如 pd.ArrowDtype(pa.bool_())
PyArrow 類型 |
pandas 延伸類型 |
NumPy 類型 |
---|---|---|
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
(無) |
(無) |
|
(無) |
(無) |
|
|
||
(無) |
(無) |
|
(無) |
(無) |
|
(無) |
|
|
(無) |
(無) |
|
|
||
(無) |
(無) |
|
(無) |
(無) |
|
(無) |
(無) |
|
(無) |
註解
由 pd.StringDtype("pyarrow")
和 pd.ArrowDtype(pa.string())
提供 Pyarrow 支持的字串支援。 pd.StringDtype("pyarrow")
在 字串區段 中描述如下,如果指定字串別名 "string[pyarrow]"
,將會回傳它。 pd.ArrowDtype(pa.string())
通常與不同類型的 ArrowDtype
有更好的互通性。
雖然 arrays.ArrowExtensionArray
中的個別值儲存為 PyArrow 物件,但純量會回傳為對應於資料類型的 Python 純量,例如 PyArrow int64 會回傳為 Python int,或 NA
表示遺失值。
|
由 PyArrow ChunkedArray 支援的 Pandas ExtensionArray。 |
|
PyArrow 資料類型的 ExtensionDtype。 |
如需更多資訊,請參閱 PyArrow 使用者指南。
日期時間#
NumPy 無法原生表示具時區感知的日期時間。pandas 使用 arrays.DatetimeArray
擴充陣列來支援此功能,它可以儲存無時區或具時區感知的值。
Timestamp
是 datetime.datetime
的子類別,是 pandas 的純量類型,用於無時區或具時區感知的日期時間資料。NaT
是日期時間資料的遺失值。
|
python datetime.datetime 物件的 Pandas 替換。 |
屬性#
以奈秒為單位傳回 numpy datetime64 格式。 |
|
傳回星期幾。 |
|
傳回星期幾。 |
|
傳回一年中的第幾天。 |
|
傳回一年中的第幾天。 |
|
傳回一個月中的天數。 |
|
傳回一個月中的天數。 |
|
如果年份是閏年,傳回 True。 |
|
檢查日期是否為該月的最後一天。 |
|
檢查日期是否為該月的第一天。 |
|
檢查日期是否為該季度的最後一天。 |
|
檢查日期是否為季度的第一天。 |
|
如果日期是該年的最後一天,則傳回 True。 |
|
如果日期是該年的第一天,則傳回 True。 |
|
傳回該年的季度。 |
|
tzinfo 的別名。 |
|
與 self._creso 相關聯的縮寫。 |
|
傳回該年的週數。 |
|
傳回該年的週數。 |
|
方法#
|
將底層 int64 表示轉換為指定的單位。 |
將具時區感知的 Timestamp 轉換為另一個時區。 |
|
|
傳回一個向上取整到此解析度的 Timestamp。 |
|
將日期、時間合併為具有相同日期和時間欄位的日期時間。 |
傳回 ctime() 樣式的字串。 |
|
傳回具有相同年、月和日的日期物件。 |
|
|
傳回具有指定 locale 的時間戳記星期名稱。 |
|
傳回夏令時間 (DST) 調整。 |
|
傳回一個向下取整到此解析度的時間戳記。 |
|
從一個前儒略曆序數建立一個時間戳記。 |
將時間戳記[, tz] 從 POSIX 時間戳記轉換為 tz 的當地時間。 |
|
傳回一個包含 ISO 年、週數和星期幾的名稱元組。 |
|
|
傳回根據 ISO 8601 格式化時間。 |
傳回日期所表示的星期幾。 |
|
|
傳回具有指定 locale 的時間戳記月份名稱。 |
將時間戳記標準化至午夜,保留 tz 資訊。 |
|
|
傳回新的 Timestamp 物件,代表當地時間為 tz。 |
|
實作 datetime.replace,處理奈秒。 |
|
將 Timestamp 四捨五入到指定的解析度。 |
|
傳回 Timestamp 的格式化字串。 |
|
函式尚未實作。 |
傳回時間物件,時間相同,但 tzinfo=None。 |
|
傳回浮點數的 POSIX 時間戳記。 |
|
傳回時間元組,與 time.localtime() 相容。 |
|
傳回時間物件,時間和 tzinfo 相同。 |
|
傳回具有相同精度的 numpy.datetime64 物件。 |
|
|
將 Timestamp 轉換為 NumPy datetime64。 |
將 TimeStamp 轉換為儒略曆。 |
|
|
傳回此時間戳記為觀測值的期間。 |
|
將 Timestamp 物件轉換為原生 Python datetime 物件。 |
|
傳回當地時區的目前時間。 |
傳回前儒略日序數。 |
|
將具時區感知的 Timestamp 轉換為另一個時區。 |
|
|
將 Timestamp 定位到時區。 |
傳回時區名稱。 |
|
從 POSIX 時間戳記建構一個時區感知的 UTC datetime。 |
|
傳回一個新的 Timestamp 代表 UTC 日期和時間。 |
|
傳回 UTC 偏移量。 |
|
傳回 UTC 時間元組,與 time.localtime() 相容。 |
|
傳回日期所表示的星期幾。 |
一組時間戳記可以儲存在 arrays.DatetimeArray
中。對於時區感知資料,arrays.DatetimeArray
的 .dtype
是 DatetimeTZDtype
。對於時區非感知資料,會使用 np.dtype("datetime64[ns]")
。
如果資料有時區感知,則陣列中的每個值都必須有相同的時區。
|
Pandas 擴充陣列,用於時區無感知或時區感知的日期時間資料。 |
|
時區感知日期時間資料的擴充資料類型。 |
時間增量#
NumPy 可以原生表示時間增量。pandas 提供 Timedelta
,以與 Timestamp
對稱。 NaT
是時間增量資料的遺失值。
|
表示持續時間,即兩個日期或時間之間的差異。 |
屬性#
傳回 numpy timedelta64 陣列標量檢視。 |
|
傳回元組命名類似的組件。 |
|
傳回時間增量的日期。 |
|
傳回奈秒數 (n),其中 0 <= n < 1 微秒。 |
|
傳回時間增量的總小時、分鐘和秒數,以秒為單位。 |
|
|
陣列檢視相容性。 |
方法#
|
將基礎 int64 表示轉換為指定的單位。 |
|
傳回一個進位到此解析度的 Timedelta。 |
|
傳回一個捨去到此解析度的 Timedelta。 |
將 Timedelta 格式化為 ISO 8601 Duration。 |
|
|
將 Timedelta 四捨五入到指定的解析度。 |
將 pandas Timedelta 物件轉換為 python |
|
傳回一個具有「ns」精度的 numpy.timedelta64 物件。 |
|
|
將 Timedelta 轉換為 NumPy timedelta64。 |
持續時間中的總秒數。 |
可將 Timedelta
集合儲存在 TimedeltaArray
中。
|
Pandas 擴充陣列,用於時間間隔資料。 |
週期#
pandas 將時間範圍表示為 Period
物件。
週期#
|
表示一段時間。 |
屬性#
取得週期所在的月份中的日期。 |
|
週期所在的星期中的日期,星期一為 0,星期日為 6。 |
|
週期所在的星期中的日期,星期一為 0,星期日為 6。 |
|
傳回一年中的第幾天。 |
|
傳回一年中的第幾天。 |
|
取得此週期所在的月份中的總天數。 |
|
取得此週期所在的月份中的總天數。 |
|
取得此週期的結束時間時間戳記。 |
|
傳回頻率的字串表示形式。 |
|
取得週期的日時間元件。 |
|
如果週期的年份為閏年,傳回 True。 |
|
取得 Period 中小時段的分鐘。 |
|
傳回 Period 所屬的月份。 |
|
傳回 Period 所屬的季度。 |
|
根據起始季度,取得 Period 所屬的會計年度。 |
|
取得 Period 的秒數部分。 |
|
取得此期間開始時間的 Timestamp。 |
|
取得給定 Period 中的一年中的第幾週。 |
|
週期所在的星期中的日期,星期一為 0,星期日為 6。 |
|
取得給定 Period 中的一年中的第幾週。 |
|
傳回 Period 所屬的年份。 |
方法#
|
將 Period 轉換為所需的頻率,在區間的開始或結束。 |
|
傳回現在日期的期間。 |
|
傳回 |
|
傳回 Period 的 Timestamp 表示。 |
可將 Period
集合儲存在 arrays.PeriodArray
中。在 arrays.PeriodArray
中的每個週期都必須具有相同的 freq
。
|
Pandas ExtensionArray,用於儲存週期資料。 |
|
週期資料的 ExtensionDtype。 |
區間#
任意區間可表示為 Interval
物件。
實作區間的不可變物件,一個有界的類似切片的區間。 |
屬性#
描述區間包含側的字串。 |
|
檢查區間是否在左側包含。 |
|
檢查區間是否在右側包含。 |
|
表示區間是否為空,表示不包含任何點。 |
|
區間的左邊界。 |
|
傳回區間的長度。 |
|
傳回區間的中點。 |
|
檢查區間是否在左側開啟。 |
|
檢查區間是否在右側開啟。 |
|
|
檢查兩個 Interval 物件是否重疊。 |
區間的右邊界。 |
區間集合可以儲存在 arrays.IntervalArray
中。
|
封閉於同一側的區間資料的 Pandas 陣列。 |
|
區間資料的 ExtensionDtype。 |
可為 Null 的整數#
numpy.ndarray
無法原生表示具有遺失值的整數資料。pandas 透過 arrays.IntegerArray
提供此功能。
|
整數陣列(可選遺失)值。 |
int8 整數資料的 ExtensionDtype。 |
|
int16 整數資料的 ExtensionDtype。 |
|
int32 整數資料的 ExtensionDtype。 |
|
int64 整數資料的 ExtensionDtype。 |
|
uint8 整數資料的 ExtensionDtype。 |
|
uint16 整數資料的 ExtensionDtype。 |
|
uint32 整數資料的 ExtensionDtype。 |
|
uint64 整數資料的 ExtensionDtype。 |
可為 Null 的浮點數#
|
浮點數陣列(可選遺失)值。 |
float32 資料的 ExtensionDtype。 |
|
float64 資料的 ExtensionDtype。 |
分類#
pandas 定義一種自訂資料類型,用於表示只能取有限、固定值集的資料。Categorical
的資料類型可以用 CategoricalDtype
來描述。
|
具有類別和順序性的類別資料類型。 |
包含允許的唯一類別的 |
|
類別是否具有順序關係。 |
類別資料可以儲存在pandas.Categorical
中
|
以經典 R / S-plus 方式表示類別變數。 |
當您已具有類別和整數代碼時,可以使用替代建構函數Categorical.from_codes()
|
從代碼和類別或資料類型建立類別類型。 |
資料類型資訊可在Categorical
上取得
此實例的 |
|
此類別的類別。 |
|
類別是否具有順序關係。 |
|
此類別索引的類別代碼。 |
np.asarray(categorical)
透過實作陣列介面來運作。請注意,這會將Categorical
轉回 NumPy 陣列,因此類別和順序資訊不會保留!
|
numpy 陣列介面。 |
Categorical
可以儲存在 Series
或 DataFrame
中。若要建立 dtype 為 category
的 Series,請使用 cat = s.astype(dtype)
或 Series(..., dtype=dtype)
,其中 dtype
為下列任一項:
字串
'category'
CategoricalDtype
的執行個體。
如果 Series
的 dtype 為 CategoricalDtype
,則可以使用 Series.cat
來變更類別資料。請參閱 類別存取器 以取得更多資訊。
稀疏#
資料中單一值重複多次(例如 0
或 NaN
)可以用 arrays.SparseArray
有效儲存。
|
用於儲存稀疏資料的擴充陣列。 |
|
儲存在 |
如果 Series
包含稀疏值,可以使用 Series.sparse
存取器來存取稀疏特定屬性和方法。請參閱 稀疏存取器 和 使用者指南 以了解更多資訊。
字串#
在處理文字資料時,其中每個有效元素都是字串或遺失值,我們建議使用 StringDtype
(別名為 "string"
)。
|
字串資料的擴充陣列。 |
|
|
|
字串資料的延伸資料類型。 |
Series.str
存取器可供 Series
使用,而 arrays.StringArray
則支援 字串處理。詳情請參閱。
可為 Null 的布林#
布林資料類型(別名為 "boolean"
)支援儲存布林資料(True
、False
),以及遺失值,而 numpy.ndarray
的布林值無法做到這一點。
|
包含遺失值的布林(True/False)資料陣列。 |
布林資料的延伸資料類型。 |
公用程式#
建構函式#
|
結合類別型清單,合併類別。 |
|
傳回一個純量或清單值類型的字串標籤。 |
|
將輸入轉換為僅限 pandas 的 dtype 物件或 numpy dtype 物件。 |
資料類型內省#
|
檢查提供的陣列或 dtype 是否為實數 dtype。 |
|
檢查提供的陣列或 dtype 是否為布林 dtype。 |
|
(已棄用) 檢查陣列類似或 dtype 是否為類別 dtype。 |
|
檢查提供的陣列或 dtype 是否為複數 dtype。 |
|
檢查提供的陣列或 dtype 是否為 datetime64 dtype。 |
|
檢查陣列或資料類型是否為 datetime64 資料類型。 |
|
檢查提供的陣列或資料類型是否為 datetime64[ns] 資料類型。 |
|
(已棄用) 檢查陣列或資料類型是否為 DatetimeTZDtype 資料類型。 |
|
檢查物件是否為 pandas 延伸陣列類型。 |
|
檢查提供的陣列或資料類型是否為浮點數資料類型。 |
|
(已棄用) 檢查提供的陣列或資料類型是否為 int64 資料類型。 |
|
檢查提供的陣列或資料型態是否為整數資料型態。 |
|
(已棄用) 檢查陣列或資料型態是否為區間資料型態。 |
|
檢查提供的陣列或資料型態是否為數值資料型態。 |
|
檢查陣列或資料型態是否為物件資料型態。 |
|
(已棄用) 檢查陣列或資料型態是否為時間資料型態。 |
|
檢查提供的陣列或資料型態是否為有符號整數資料型態。 |
|
檢查提供的陣列或資料類型是否為字串資料類型。 |
|
檢查陣列類似或資料類型是否為 timedelta64 資料類型。 |
|
檢查提供的陣列或資料類型是否為 timedelta64[ns] 資料類型。 |
|
檢查提供的陣列或資料類型是否為無符號整數資料類型。 |
|
(已棄用) 檢查陣列類似是否為 1-D pandas 稀疏陣列。 |
可迭代內省#
檢查物件是否類似字典。 |
|
檢查物件是否為類似檔案的物件。 |
|
|
檢查物件是否類似清單。 |
檢查物件是否為命名元組。 |
|
檢查物件是否為迭代器。 |
標量內省#
|
如果給定的物件為布林值,傳回 True。 |
|
如果給定的物件為複數,傳回 True。 |
|
如果給定的物件為浮點數,傳回 True。 |
如果 hash(obj) 會成功,傳回 True,否則傳回 False。 |
|
|
如果給定的物件為整數,傳回 True。 |
|
檢查物件是否為數字。 |
|
檢查物件是否為正則表達式模式實例。 |
檢查物件是否可以編譯成正規表示式模式實例。 |
|
|
如果給定的物件是純量,則傳回 True。 |