Я относительно новичок в Джулии, поэтому отнеситесь к моему ответу с небольшим скептицизмом:
Сначала мы превращаем создание DataFrame в функцию:
function prepare_date_df(date)
data = DataFrame(CSV.File(HTTP.get(create_url(date)).body))
DataFrames.rename!(cleanup_column_names, data)
DataFrames.select!(data,["state", "country", selected_data])
DataFrames.rename!(data, 3 => Dates.format(date, "YYYY-mm-dd"))
return data
end
Давайте создадим наш первый Фрейм данных:
df = prepare_date_df(date_range[1])
Теперь давайте переберем все другие даты, создадим фрейм данных для каждой даты и объединим его с нашим первым фреймом данных:
for date in date_range[2:end]
df_new = prepare_date_df(date)
df = outerjoin(df, df_new, on = [:state, :country])
end
Это отлично работает для первого два месяца, но с ростом Dataframes он внезапно становится очень медленным (и даже зависает?). Так что я был бы очень заинтересован в более перформативном ответе!