Для index
replace у нас есть функция rename
, также она не поддерживает присваивание из своих значений
df.rename(index=dict.fromkeys(df.index[1::2],0))
Out[162]:
foo
0 0.166692
0 0.889263
2 0.509025
0 0.688095
4 0.995862
0 0.258366
6 0.080054
0 0.406233
8 0.296096
0 0.680760
Проблема здесь для RangeIndex
if isinstance(data, RangeIndex):
return RangeIndex(start=data, copy=copy, dtype=dtype, name=name)
Если мы изменим индекс диапазона на другой тип, как показано ниже, он будет работать
df.index=[100,0,1,2,3,4,5,6,7,8]
df.index.values[1::2] = 0
df
Out[177]:
foo
100 0.166692
0 0.889263
1 0.509025
0 0.688095
3 0.995862
0 0.258366
5 0.080054
0 0.406233
7 0.296096
0 0.680760