【发布时间】:2021-10-05 13:46:19
【问题描述】:
在 Julia 中,我有两个数据框,我想返回一个数据框,该数据框选择第一个数据框中的行,这些行在 Fund 列中有一个出现在第二个数据框中的基金。一个简单的例子是:
df1 = DataFrame(Fund = ["AAA", "AAA", "BBB", "CCC", "DDD"], 购买 = [1000, 500, 600, 800,900])
df2 = DataFrame(Fund = ["AAA", "CCC"], Totals =[1000,200])
我想返回的是:
df3 = DataFrame(Fund = ["AAA", "AAA","CCC"], Purchase = [1000, 500, 800])
我在 df1 中有大约 10 列和几千行 df2 中的“Fund”列将始终包含唯一资金,并且始终是 df1.Fund 的子集,并且可能包含超过 1,000 行
我是 Julia 的新手,创建了下面的函数,想知道是否有更好的方法来解决这个问题。
function newtransactions(df1,df2)
res = DataFrame([Any[],Any[]],["Fund", "Purchase"])
for t ∈ df2.Fund
res = append!(res,subset(df1, :Fund => X-> (X .== t)))
end
return res
结束
【问题讨论】: