Используйте Series.sub
с np.arange
:
df['a'] = df['a'].sub(np.arange(1, len(df) + 1))
#df['a'] = df['a'] - np.arange(1, len(df) + 1)
или если индекс по умолчанию:
df['a'] = df['a'].sub(df.index + 1)
Вывод
Name a
0 b 3
1 c 2
2 d 1
мы также можем сделать:
df['a'] -= df.index + 1
df['a'] -= np.arange(1, len(df)+1)