如何使用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
实现。