Pandas factorize(~)
方法返回以下內容:
-
整數索引數組,用於將輸入數組映射到唯一值。
-
輸入數組的所有唯一值。
參數
1. values
| sequence
一維值序列。
2. sort
| boolean
| optional
是否對唯一值的結果數組進行排序。默認情況下,sort=False
。
3. na_sentinel
| int
| optional
在整數索引數組中標記 NaN
的值。默認情況下,na_sentinel=-1
。
返回值
返回以下兩個NumPy數組:
-
整數索引數組,將輸入數組映射到唯一值數組。
-
包含輸入數組的唯一值的數組。
例子
基本用法
codes, uniques = pd.factorize(["B", "A", "A", "C", "B"])
print("codes:", codes)
print("uniques:", uniques)
codes: [0 1 1 2 0]
uniques: ['B' 'A' 'C']
請注意以下事項:
-
codes
數組將輸入數組中的值映射到uniques
數組。 -
唯一值按照它們在輸入數組中出現的順序進行排序。
您可以使用 codes
和 uniques
重新創建輸入數組,如下所示:
uniques[codes]
array(['B', 'A', 'A', 'C', 'B'], dtype=object)
指定排序
默認情況下, sort=False
,這意味著返回的唯一值數組未排序。
要對唯一值數組進行排序,請像這樣設置sort=True
:
codes, uniques = pd.factorize(["B", "A", "A", "C", "B"], sort=True)
print("codes:", codes)
print("uniques:", uniques)
codes: [1 0 0 2 1]
uniques: ['A' 'B' 'C']
請注意 uniques
的排序方式,codes
數組也反映了這一點。
指定na_sentinel
默認情況下,NaN
值在 codes
數組中標記為 -1
:
codes, uniques = pd.factorize(["B", np.NaN, "A", "C", "B"])
print("codes:", codes)
print("uniques:", uniques)
codes: [ 0 -1 1 2 0]
uniques: ['B' 'A' 'C']
我們可以通過傳入 na_sentinel
來選擇自己的值,如下所示:
codes, uniques = pd.factorize(["B", np.NaN, "A", "C", "B"], na_sentinel=50)
print("codes:", codes)
print("uniques:", uniques)
codes: [ 0 50 1 2 0]
uniques: ['B' 'A' 'C']
相關用法
- Python factorial()用法及代碼示例
- Python NumPy fabs方法用法及代碼示例
- Python fabs() vs abs()用法及代碼示例
- Python NumPy fliplr方法用法及代碼示例
- Python dict fromkeys()用法及代碼示例
- Python frexp()用法及代碼示例
- Python BeautifulSoup find_next方法用法及代碼示例
- Python functools.wraps用法及代碼示例
- Python NumPy floor方法用法及代碼示例
- Python functools.singledispatchmethod用法及代碼示例
- Python float轉exponential用法及代碼示例
- Python calendar firstweekday()用法及代碼示例
- Python NumPy full方法用法及代碼示例
- Python NumPy flatten方法用法及代碼示例
- Python float.is_integer用法及代碼示例
- Python Django format_lazy用法及代碼示例
- Python format()用法及代碼示例
- Python NumPy fill_diagonal方法用法及代碼示例
- Python filecmp.cmpfiles()用法及代碼示例
- Python functools.singledispatch用法及代碼示例
- Python fileinput.filelineno()用法及代碼示例
- Python NumPy finfo方法用法及代碼示例
- Python BeautifulSoup find_all_next方法用法及代碼示例
- Python fileinput.lineno()用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas | factorize method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。