#pandas #loops
#pandas #циклы
Вопрос:
У меня есть фрейм данных, подобный этому:
col1 col2 col3 col4
0 1 0 45
4 3 102 72
0 0 11 101
если значение каждого элемента в столбцах с 1 по 3 больше 0, их следует заменить значением col4, поэтому ожидаемый результат должен быть:
col1 col2 col3 col4
0 45 0 45
72 72 72 72
0 0 101 101
Ответ №1:
Вы можете использовать mask
:
cols = ['col1', 'col2', 'col3']
df[cols] = df[cols].mask(df[cols]>0, df['col4'], axis=0)
Вывод:
col1 col2 col3 col4
0 0 45 0 45
1 72 72 72 72
2 0 0 101 101