【发布时间】:2022-01-17 00:55:00
【问题描述】:
我正在尝试将 transform 与匿名函数 (x -> uppercase.(x)) 一起使用,并通过指定目标列名称 (:A) 将新列存储为 "A"。
如果我没有指定目标列变量(下面的第一个转换),则可以正常生成新变量(即具有 5 个元素的向量)。但是,一旦我指定了目标列(下面的第二个转换),该函数就会返回一个 "a_function" 名称下的向量对。
如何使用包含 5 个元素(“A”到“E”)的 Vector 的新列 "A" 生成所需的 DataFrame?为什么下面的第二个转换会返回一个名称与指定名称不同的向量对?
using DataFrames
df_1 = DataFrame(a = ["a", "b", "c", "d", "e"])
df_2 = transform(df_1, :a => x -> uppercase.(x)) # first transformation
df_2
Row │ a a_function
│ String String
─────┼────────────────────
1 │ a A
2 │ b B
3 │ c C
4 │ d D
5 │ e E
df_3 = transform(df_1, :a => x -> uppercase.(x) => :A) # second transformation
df_3
5×2 DataFrame
Row │ a a_function
│ String Pair…
─────┼───────────────────────────────────────
1 │ a ["A", "B", "C", "D", "E"]=>:A
2 │ b ["A", "B", "C", "D", "E"]=>:A
3 │ c ["A", "B", "C", "D", "E"]=>:A
4 │ d ["A", "B", "C", "D", "E"]=>:A
5 │ e ["A", "B", "C", "D", "E"]=>:A
期望的结果DataFrame:
DataFrame(a = ["a", "b", "c", "d", "e"],
A = ["A", "B", "C", "D", "E"])
【问题讨论】:
标签: julia transform anonymous-function dataframes.jl