factorize具体是做什么的,这个不好描述,先让我用个例子做个说明。
>>> import pandas as pd
>>> labels, uniques = pd.factorize(['b', 'b', 'a', 'c', 'b'])
>>> labels
array([0, 0, 1, 2, 0], dtype=int64)
>>> uniques
array(['b', 'a', 'c'], dtype=object)
如上述代码,在对一个列表调用了fatorize方法后,返回了一个元祖。uniques返回的是对应列表去重后的值。labels返回的是列表中每个元素在uniques中的位置。
当然你还可以添加sort参数作为入参,默认会对uniques中的值进行排序
>>> labels, uniques = pd.factorize(['b', 'b', 'a', 'c', 'b'], sort=True)
>>> labels
array([1, 1, 0, 2, 1])
>>> uniques
array(['a', 'b', 'c'], dtype=object)
如果列表中包含None,uniques会把他忽略掉,并在列表中标为-1
>>> labels, uniques = pd.factorize(['b', None, 'a', 'c', 'b'])
>>> labels
array([ 0, -1, 1, 2, 0])
>>> uniques
array(['b', 'a', 'c'], dtype=object)
哈哈,以上就是关于factorize函数的介绍,还是挺有用的。有兴趣欢迎关注python小工具,一起学习python和pandas