Julia迭代数据帧行

时间:2014-03-15 22:48:50

标签: loops iteration 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)]

这是Julia / DataFrames这样做的方式吗?还有更多Julia-eque的做法吗?感谢您的任何反馈。

1 个答案:

答案 0 :(得分:2)

你最好做test_df[i,"A"] .* test_df[i,"B"]。通常,Julia使用点前缀来指示元素操作。所有这些按元素操作都是矢量化的。

您也不想使用数组解析,因为您可能希望将DataArray作为输出。目前还没有DataArray理解,因为在Julia解析器中内置了理解,这使得它们难以在DataArrays.jl等库中覆盖。