如何使用Julia DataFrames命名do表单转换产生的列?

如何使用Julia DataFrames命名do表单转换产生的列?,dataframe,julia,Dataframe,Julia,出于某些原因,我必须使用DataFrames.transform的do形式(块形式?) df = DataFrame(:a => [i for i in 1:10]) transform(df) do d [d[i, :a] * 10 for i in 1:nrow(d)] end Row │ a x1 │ Int64 Int64 ─────┼────────────── 1 │ 1 10 2 │ 2 20

出于某些原因,我必须使用
DataFrames.transform的
do
形式(块形式?)

df = DataFrame(:a => [i for i in 1:10])

transform(df) do d
  [d[i, :a] * 10 for i in 1:nrow(d)]
end

 Row │ a      x1
     │ Int64  Int64
─────┼──────────────
   1 │     1     10
   2 │     2     20
   3 │     3     30
   . |     .     ..
这很好,但我希望这个新专栏的名称不是
x1
。我在文档中看不到一个明显的方法,除了将其命名为post-hoc。是否有一种方法可以使用一个命名列(甚至可能不止一个?)而不是将其命名为
xn

您可以:

df.something = map(eachrow(df)) do x
  x.a * 10
end
结果:

julia> df
10×2 DataFrame
 Row │ a      something
     │ Int64  Int64
─────┼──────────────────
   1 │     1         10
   2 │     2         20
   3 │     3         30
   4 │     4         40
   5 │     5         50
   6 │     6         60
   7 │     7         70
   8 │     8         80
   9 │     9         90
  10 │    10        100

您可以返回一个
数据帧
或一个
命名的双元组

df = DataFrame(:a => [i for i in 1:10])

transform(df) do d
  (result=[d[i, :a] * 10 for i in 1:nrow(d)],)
end

transform(df) do d
  DataFrame(result=[d[i, :a] * 10 for i in 1:nrow(d)])
end

我需要按索引访问行,所以我必须在整数范围内映射,但这可以工作,谢谢!我只是希望有一种方法可以通过
transform
实现。