Julia-数据切片不适用于for循环,但不适用于for循环

Julia-数据切片不适用于for循环,但不适用于for循环,julia,julia-dataframe,Julia,Julia Dataframe,我试图通过for循环从所有股票的数据中提取特定股票符号的数据。当我使用for循环外的代码时,代码正在工作,而相同的代码在for循环中不工作 下面是代码- 工作- df = fh_5[fh_5.symbol .== "GOOG", ["date","close"]] 不起作用- for s in unique!(fh_5.symbol) df = fh_5[fh_5.symbol .== s, ["date"

我试图通过for循环从所有股票的数据中提取特定股票符号的数据。当我使用for循环外的代码时,代码正在工作,而相同的代码在for循环中不工作

下面是代码-

工作-

df = fh_5[fh_5.symbol .== "GOOG", ["date","close"]]
不起作用-

for s in unique!(fh_5.symbol)
    df = fh_5[fh_5.symbol .== s, ["date","close"]]
    date_range = leftjoin(date_range, df, on =:"dates" => :"date")
end
错误

在我运行for循环之后,在for循环之外工作的代码不工作,我必须重新导入csv文件-如果我先运行它,for循环之外的代码工作。当我运行for循环时,我是否正在更改基本数据集fh_5

仅添加可复制的示例-

下面是使用的代码-

using DataFrames
using DataFramesMeta
using CSV
using Dates
using Query


fh_5 = CSV.read("D:\\Julia_Dataframe\\JuliaCon2020-DataFrames-Tutorial\\fh_5yrs.csv", DataFrame)

min_date = minimum(fh_5[:, "date"])
max_date = maximum(fh_5[:, "date"])
date_seq = string.(collect(Dates.Date(min_date) : Dates.Day(1) : Dates.Date(max_date)))
date_range = df = DataFrame(dates = date_seq)
date_range.dates = Date.(date_range.dates, "yyyy-mm-dd")

for s in unique(fh_5.symbol)
    df = fh_5[fh_5.symbol .== s, ["date","close"]]
    date_range = leftjoin(date_range, df, on =:"dates" => :"date")
    rename!(date_range, Dict(:close => s))
end

不要使用
uniquefh_5.symbol
列发生变异。换句话说,
独一无二删除该列中的重复值,这将更改该列的长度。改用
unique
。比如说:

for s in unique(fh_5.symbol)
    df = fh_5[fh_5.symbol .== s, ["date","close"]]
    date_range = leftjoin(date_range, df, on =:"dates" => :"date")
end

在Julia中,按照惯例,函数的名称以
结尾将改变(一些)它们的参数。

即使我在for循环中添加了“AAPL”、“GOOG”等特定符号,并且没有使用动态变量,只是为了测试for循环中的变量是否存在任何问题,我仍然会得到相同的错误,请,添加一个。我已经添加了一个可复制的示例,但是在加入@Cameron Bieganek的建议后,代码现在运行良好-我之前将“unique”从“unique!”更改为“unique!”
for s in unique(fh_5.symbol)
    df = fh_5[fh_5.symbol .== s, ["date","close"]]
    date_range = leftjoin(date_range, df, on =:"dates" => :"date")
end