04-3 pandas 中 pd.Categorical用法
pandas.Categorical(values,categories = None,ordered = None,dtype = None,fastpath = False )[source]
表示經典R / S-plus方式的分類變數
分類只能採用有限的,通常是固定數量的可能值(類別)。與統計分類變數相比,分類可能具有順序,但數值運算(加法,除法,…)是不可能的。
分類的所有值都在類別或np.nan中。在類別之外分配值將引發ValueError。順序由類別的順序定義,而不是值的詞彙順序。
引數:
值:類似列表。分類的值,如果給出了類別,則不在類別中的值將替換為NaN。
類別:索引式(唯一),可選。此分類的唯一類別。如果沒有給出,則假定類別是值的唯一值。
ordered:布林值,(預設為False)。此分類是否被視為有序分類。如果沒有給出,則不會訂購生成的分類。
dtype:CategoricalDtype,CategoricalDtype用於此分類的例項
舉:
ValueError異常:如果類別不驗證。
型別錯誤:如果ordered=True給出了顯式但沒有類別且 值不可排序。
下面我們來看例項:
In [16]: st = ['a','a','b','c','c']
In [17]: ss = pd.Categorical(st)
In [18]: ss
Out[18]:
[a, a, b, c, c]
Categories (3, object): [a, b, c]
In [22]: ss.dtype
Out[22]: CategoricalDtype(categories=['a', 'b', 'c'], ordered=False)
這裡就可以看到 categorical 實際上是計算一個列表型資料中的類別數,即不重複項,它返回的是一個CategoricalDtype 型別的物件,相當於在原來資料上附加上類別資訊 ,
具體的類別可以通過和對應的序號可以通過 codes 和 categories 來檢視:
In [23]: ss.codes
Out[23]: array([0, 0, 1, 2, 2], dtype=int8)
In [21]: ss.categories
Out[21]: Index(['a', 'b', 'c'], dtype='object')
有序分類可以根據類別的自定義順序進行排序,並且可以具有最小值和最大值。
>>>c = pd.Categorical(['a','b','c','a','b','c'], ordered=True, categories=['c', 'b', 'a'])
>>> c
[a, b, c, a, b, c]
Categories (3, object): [c < b < a]
>>> c.min()
'c'
屬性
categories 這種分類的類別。
codes 此類別的類別程式碼。
ordered 類別是否具有有序關係
dtype 在CategoricalDtype此例項
相關文章
- pandas用法總結
- Pandas高階教程之:GroupBy用法
- Python資料處理-pandas用法Python
- 前置機器學習(四):一文掌握Pandas用法機器學習
- Pandas資料視覺化工具——Seaborn用法整理視覺化
- Pandas中resample方法詳解
- 【Pandas學習筆記02】-資料處理高階用法筆記
- 高手系列!資料科學傢俬藏pandas高階用法大全 ⛵資料科學
- pandas中的series資料型別資料型別
- pandas中dataframe與dict相互轉換
- Go 中 ...用法Go
- Pandas之:Pandas簡潔教程
- Pandas
- pandas | DataFrame中的排序與彙總方法排序
- python中pandas的知識點整理Python
- pandas中計算總體標準差
- Pandas進階貳 pandas基礎
- Pandas - pandas.Series.pipe 函式函式
- golang 中fmt用法Golang
- JavaScript中prototype用法JavaScript
- js中的this用法JS
- php中split()用法PHP
- java中Varargs用法Java
- SQL 中With as 的用法SQL
- oracle中top用法Oracle
- Oracle中with的用法Oracle
- Oracle中group by用法Oracle
- MySQL 中 WITH ROLLUP 用法MySql
- pandas中如何使用合併append函式?APP函式
- Pandas中apply、applymap、map的區別APP
- Python中Pandas 方法cut簡單講講Python
- MYSQL中replace into的用法MySql
- Java中super的用法Java
- mySQL中replace的用法MySql
- iOS 中 cell的用法iOS
- golang中channel的用法Golang
- MongoDB中regex用法MongoDB
- linux中sed用法Linux