Вы должны использовать:
DataFrame(CSV.File("some_file.csv"))
в вашем случае.
Теперь, чтобы объяснить, что происходит, посмотрите на справку CSV.read
:
help?> CSV.read
CSV.read(source; copycols::Bool=false, kwargs...) => DataFrame
Parses a delimited file into a DataFrame. copycols determines whether a copy of columns should be made when creating the DataFrame; by default, no copy
is made, and the DataFrame is built with immutable, read-only CSV.Column vectors. If mutable operations are needed on the DataFrame columns, set
copycols=true.
CSV.read supports the same keyword arguments as CSV.File.
Как видите, CSV.read
использует специальный формат типа внутреннего столбца для повышения производительности (с недостатком в том, что он неизменен и нестандартен).
Причина, по которой я рекомендую использовать DataFrame(CSV.File("some_file.csv"))
чем CSV.File("some_file.csv", copycols=true)
в том, что в будущем, вероятно, CSV.read
функция может быть удалена из пакета, поэтому использование CSV.File
является безопасным для будущего подходом.