Случай 1 : df
имеет только единицы и нули в col2 и целочисленные индексы.
>>> df
col1 col2
0 a 0
1 b 1
2 c 1
3 d 0
4 c 1
5 d 0
Вы можете использовать:
>>> df.loc[df['col2'].idxmax() + 1:, 'col2'] = 0
>>> df
col1 col2
0 a 0
1 b 1
2 c 0
3 d 0
4 c 0
5 d 0
Case2 : df
может иметь все виды значений в столбце col2 и иметь целочисленные индексы.
>>> df # demo dataframe
col1 col2
0 a 0
1 b 1
2 c 2
3 d 2
4 c 3
5 d 3
Можно использовать:
>>> df.loc[(df['col2'] == 1).idxmax() + 1:, 'col2'] = 0
>>> df
col1 col2
0 a 0
1 b 1
2 c 0
3 d 0
4 c 0
5 d 0
Случай 3 : df
может иметь все виды значений в столбце col2 и иметь произвольный индекс.
>>> df
col1 col2
u a -1
v b 1
w c 2
x d 2
y c 3
z d 3
Вы можете использовать:
>>> df['col2'].iloc[(df['col2'].values == 1).argmax() + 1:] = 0
>>> df
col1 col2
u a -1
v b 1
w c 0
x d 0
y c 0
z d 0