Я хочу умножить столбец "b" на "log"
Предполагая, что вы хотите применить (натуральное) log
к каждому элементу в столбце :b
Вы можете сделать следующее:
log.(df.b)
log(x)
применяет (натуральный) журнал к отдельному элементу x
. Поставив точку после журнала, вы транслируете функцию log
на каждый элемент.
Если вы хотите заменить столбец b, выполните следующее:
df.b = log.(df.b)
и затем замените NaN на 0s
Я предполагаю, что вы хотите обработать случай, когда у вас есть DomainError
(ie, принимающий log
отрицательного числа). Лучше всего обработать ошибку до ее появления:
map( x -> x <= 0 ? 0.0 : log(x), df.b)
Это отображает анонимную функцию x -> x <= 0 ? 0.0 : log(x)
для каждого элемента столбца b в вашем DataFrame. , Эта функция проверяет, является ли x
меньше нуля - если да, возвращает 0.0
, иначе возвращает log(x)
. Этот «однострочный if
оператор» называется троичным оператором .