Julia中如何通过函数从DataFrame提取指定列为Vector适配Chain.jl
你需要的 pull 函数已经被 DataFrames.jl 0.22 及以上版本原生支持,用法和你给出的链式调用示例完全一致,可以直接使用。
示例代码
using DataFrames, Chain df = DataFrame(x = 1:3, y = 4:6) res = @chain df begin # 此处可插入任意中间处理逻辑,比如筛选、新增列、聚合等 filter(:x => >(1), _) pull(:x) end
运行后得到的res就是Vector{Int64}类型的结果[2, 3],完全符合你的需求。
低版本DataFrames兼容方案
如果你使用的DataFrames版本较低,没有内置pull函数,可以用两种方式实现同等效果:
- 直接使用
getindex函数,链式调用中写法如下:@chain df begin # 中间处理步骤 getindex(_, :, :x) end - 自定义轻量包装函数:
# 自定义提取函数 pull_col(col) = df -> df[!, col] # 链式调用中使用 @chain df begin # 中间处理步骤 pull_col(:x) end
内容的提问来源于stack exchange,提问作者Georgery
相关产品推荐
相关产品推荐

