Julia 迭代数据帧行

Mat*_*ews 7 iteration loops dataframe julia

我试图迭代 Julia 中 DataFrame 的行,为数据框生成一个新列。我还没有遇到如何执行此操作的明确示例。在 R 中,此类事物是矢量化的,但根据我的理解,并非所有 Julia 的操作都是矢量化的,因此我需要循环遍历行。我知道我可以通过索引来做到这一点,但我相信一定有更好的方法。我希望能够按名称引用列值。这是我有的:

test_df = DataFrame( A = [1,2,3,4,5], B = [2,3,4,5,6])
test_df["C"] = [ test_df[i,"A"] * test_df[i,"B"] for i in 1:size(test_df,1)]
Run Code Online (Sandbox Code Playgroud)

这是 Julia/DataFrames 的方式吗?有没有一种更像 Julia 的方式来做到这一点?感谢您的任何反馈。

Joh*_*ite 4

你最好这样做test_df[i,"A"] .* test_df[i,"B"]。一般来说,Julia 使用点前缀来指示元素操作。所有这些逐元素运算都是矢量化的。

您也不想使用数组理解,因为您可能需要 DataArray 作为输出。目前没有 DataArray 推导式,因为推导式内置于 Julia 解析器中,这使得它们很难在 DataArrays.jl 等库中重写。