Вам также нужно указать index
из col1
, поскольку df.iloc
принимает целочисленные индексы:
>>> df.iloc[index, 0] = s1.values
>>> df
col1
0 1000.0
1 2.0
2 1000.0
3 3.0
4 1000.0
5 4.0
6 1000.0
7 5.0
8 1000.0
9 6.0
10 1000.0
11 1000.0
Вы можете получить индекс столбца, используя df.columns.get_loc
.Итак, в целом ваш код должен выглядеть так:
import pandas as pd
df = pd.DataFrame({'col1': [1000]*12})
s1 = pd.Series([i for i in range(2,7)])
index = [2*i+1 for i in range(5)]
df.iloc[index, df.columns.get_loc('col1')] = s1.values