Is this what you want (I am writing a one-liner):
julia> insertcols!(reduce(vcat, DataFrame.(values(ata_flow)), cols=:union), :stock => collect(keys(ata_flow)))
4×8 DataFrame
Row │ hv10 hv20 hv5 iv iv_% prc_% price stock
│ String String String String String String? String String
─────┼─────────────────────────────────────────────────────────────────
1 │ 45.99 52.14 41.21 40.64 83.4 7.51 122.16 AMZN
2 │ 13.87 12.71 10.32 17.62 65.61 19.37 51.27 VZ
3 │ 21.26 42.75 20.79 31.75 72.73 11.86 51.78 C
4 │ 19.16 24.97 18.77 27.62 70.36 missing 195.55 IEX
or (a bit longer but maybe easier to understand)
julia> df = DataFrame()
0×0 DataFrame
julia> foreach(row -> push!(df, row, cols=:union), values(ata_flow))
julia> df.stock .= keys(ata_flow)
4-element Vector{String}:
"AMZN"
"VZ"
"C"
"IEX"
julia> df
4×8 DataFrame
Row │ hv10 price iv_% hv20 iv hv5 prc_% stock
│ String String String String String String String? String
─────┼─────────────────────────────────────────────────────────────────
1 │ 45.99 122.16 83.4 52.14 40.64 41.21 7.51 AMZN
2 │ 13.87 51.27 65.61 12.71 17.62 10.32 19.37 VZ
3 │ 21.26 51.78 72.73 42.75 31.75 20.79 11.86 C
4 │ 19.16 195.55 70.36 24.97 27.62 18.77 missing IEX