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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。