Pandas Series.factorize() 函数的基本操作是什么?

pandasserver side programmingprogramming更新于 2025/10/12 4:22:17

Pandas Series.factorize() 方法用于将系列对象编码为枚举类型或分类变量。此方法生成序列数据的数字表示形式。

Series.factorize() 方法的输出是一个元组,它包含两个元素,一个表示代码,另一个表示唯一值。

示例 1

在下面的示例中,我们将看到 series.factorize() 方法如何对序列对象的元素进行编码。

# 导入 pandas 包
import pandas as pd

# 创建序列
s = pd.Series({'A':"aa", 'B':"bb", "C":"cc"})
print(s)

result = s.factorize()
print(result)

解释

这里的序列对象是使用 Python 字典创建的。

输出

输出如下所示 −

A    aa
B    bb
C    cc
dtype: object
(array([0, 1, 2], dtype=int32), Index(['aa', 'bb', 'cc'], dtype='object'))

在输出中,我们可以看到 Series.factorize() 函数已成功对系列对象"s"的数据进行编码。

示例 2

在下面的示例中,我们将看到 series.factorize() 方法如何对序列中缺失值的元素进行编码。

# 导入 pandas 包
import pandas as pd

# 创建序列
s = pd.Series([70, 52, None, 79, 34,], index= list('ijklm'))
print(s)

result = s.factorize()
print(result)

输出

输出如下所示 −

i    70.0
j    52.0
k     NaN
l    79.0
m    34.0
dtype: float64

(array([ 0, 1, -1, 2, 3], dtype=int32), Float64Index([70.0, 52.0, 79.0, 34.0], dtype='float64'))

正如我们在上面的输出块中看到的,Series.factorize() 方法已将给定系列对象的数据编码为数值。我们还可以观察到,缺失值已被赋值为数值 -1。


相关文章