У меня есть такой фрейм данных:
a 4.0 5.5 5.5 6.7 7.9 7.9 9.4
Я хочу добавить новый столбец с именем b, «индексирующий» значения в первом. Новый фрейм данных будет выглядеть так:
b
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:
pd.factorize
codes, uniques = pd.factorize(df['a']) df['b'] = codes
(или df['b'] = codes + 1, если вы хотите, чтобы эти индексы начинались с 1 вместо 0)
df['b'] = codes + 1