用 pandas 中的数字替换列中的多个字符串值

Replacing multiple string values in a column with numbers in pandas

我目前正在 pandas 中处理名为 df 的数据框。一栏包含 多个标签(确切地说,超过 100 个)。

我知道当值较少时如何替换值。

例如,在典型的泰坦尼克号示例中:

titanic.Sex.replace({'male': 0,'female': 1}, inplace=True)

当然,对 100+ 个值执行此操作将非常耗时。我见过类似的问题,但所有答案都涉及输入数据。有更快的方法吗?

我想你在找 factorize:

df = pd.DataFrame({'col': list('ABCDEBJZACA')})
df['factor'] = df['col'].factorize()[0]

输出:

   col  factor
0    A       0
1    B       1
2    D       2
3    C       3
4    E       4
5    B       1
6    J       5
7    Z       6
8    A       0
9    C       3
10   A       0