У меня есть фрейм данных и столбец col1 со значениями: val1, val2, val3Я хочу выбрать строки со значениями val2 или val3 для этого конкретного столбца и заменить их значением val4, но не для всех из них, а только для «среза» между idx x и y :
Код: Выделить всё
import pandas as pd
data = {'col1':["val1","val3","val3","val2","val1","val2","val3","val1"],'col2':["val3","val1","val2","val1","val2","val3","val2","val2"]}
df = pd.DataFrame(data)
df
col1 col2
0 val1 val3
1 val3 val1
2 val3 val2
3 val2 val1
4 val1 val2
5 val2 val3
6 val3 val2
7 val1 val2
Код: Выделить всё
(df['col1']=="val2") | (df['col1']=="val3")
0 False
1 True
2 True
3 True
4 False
5 True
6 True
7 False
Код: Выделить всё
col1 col2
0 val1 val3
1 val4 val1
2 val4 val2
3 val4 val1
4 val1 val2
5 val4 val3
6 val3 val2
7 val1 val2
Код: Выделить всё
df[((df['col1']=="val2") | (df['col1']=="val3"))==True][0:4] = "val4"Думаю, мне нужно использовать что-то вроде .loc
Спасибо за любую подсказку
Подробнее здесь: https://stackoverflow.com/questions/793 ... es-if-true
Мобильная версия