Есть несколько способов сделать это, основные из них:
x[:, :b] = x.a
или
x.b = x[:, :a]
Вы также можете написать:
x[!, :b] = x[:, :a]
(это может быть полезным, если :b
была переменной)
Наконец, вы также можете просто написать:
df.b = copy(df.a)
или
df.b = df.a[:]
Все правила индексации для DataFrames.jl можно найти по адресу https://juliadata.github.io/DataFrames.jl/stable/lib/indexing/.
Короче (немного упрощая, но эти правила достаточно знать на практике):
df.col
- это не копирование для получения и для установки столбца df[!, :col]
аналогично df.col
с той разницей, что вы можете легко использовать переменную вместо литерала для индексации, и она работает с широковещательной передачей, пока df.col
не работает с широковещательной рассылкой, если :col
не присутствовало в кадре данных df[:, :col]
копий для получения столбца и является операцией на месте для установки столбца, если только :col
нет присутствует в df
, и в этом случае он заново выделяет его при установке