Pandas 创建一个包含基于另一个值的索引的新列

Pandas create a new column containing index based on the value of another one

我有一个这样的数据框:

a


4.0
5.5
5.5
6.7
7.9
7.9
9.4

我想添加一个名为 b 的新列,'indexing' 第一个列中的值。 新的数据框看起来像:

a   b

4.0 1
5.5 2
5.5 2
6.7 3
7.9 4
7.9 4
9.4 5

谢谢。

您可以使用 pd.factorize:

codes, uniques = pd.factorize(df['a'])

df['b'] = codes

(或 df['b'] = codes + 1 如果您希望这些索引从 1 而不是 0 开始)