在Julia中使用DataFrames.transform复用字段批量生成多列
单行批量生成DataFrame多字段方案
原有分步实现
此前需分两次调用transform函数,基于DataFrame的:a、:b列分别生成:c列和:d列,代码如下:
using DataFrames; df=DataFrame(a=[1,2,3], b=[4,5,6]) transform(df,[:a,:b ]=>ByRow((x,y)-> x*y/5) => :c ) transform(df,[:a,:b ]=>ByRow((x,y)-> x/y*6) => :d )
单行批量实现
借助Julia的广播语法,仅需一次transform调用即可完成多字段批量生成,代码如下:
transform(df,[:a,:b ].=>[ByRow((x,y)->x*y/5) , ByRow((x,y)-> x/y*6)] .=> [:c,:d])
语法说明
通过.广播操作符,将输入列组[:a,:b]分别映射到两个ByRow处理函数,再将每个函数的处理结果对应到目标列:c和:d,实现一次调用生成多个字段。
内容的提问来源于stack exchange,提问作者Eliezer Otero
相关产品推荐
相关产品推荐

