I put together a quick comparison of supported features between CSVFiles.jl & CSV.jl:
CSV.jl | CSVFiles.jl | |
---|---|---|
Char delimiters |
![]() |
![]() |
String delimiters |
![]() |
|
Space delimiter | ![]() |
![]() |
Ignoring any repeated delimiter (fix-width files) | ![]() |
|
Char quote characters |
![]() |
![]() |
Separate open/close quote characters | ![]() |
|
escape characters | ![]() |
![]() |
skip rows to parse | ![]() |
![]() |
limit rows to parse | ![]() |
|
handle files without header row | ![]() |
![]() |
manually provide column names | ![]() |
![]() |
specify arbitrary row or range of rows for column headers | ![]() |
|
specify # of rows to use for type inference | ![]() |
|
automatically sample entire file for type inference | ![]() |
|
manually specify column types by index or name | ![]() |
![]() |
parse all columns of one type as another | ![]() |
|
specify arbitrary missing value strings | ![]() |
![]() |
transform column names into valid julia identifiers | ![]() |
|
specify arbitrary row where “data” begins | ![]() |
|
skip parsing # of rows at end of file | ![]() |
|
specify comment character/string to ignore commented rows | ![]() |
|
read a file transposed (rows as columns, columns as rows) | ![]() |
|
support alternative decimal separator characters (3.14 vs. 3,14 ) |
![]() |
|
specify arbitrary values to parse as true or false Bool values |
![]() |
|
auto detect and parse columns as CategoricalArray
|
![]() |
|
option to ignore invalid values (replaced with missing ) |
![]() |
|
ability to selectively parse specific columns | ![]() |
|
ability to apply arbitrary scalar transform functions while parsing | ![]() |
CSV.jl has been around for a long time now (started May 2015) vs. CSVFiles.jl (June 2017), and developed a ton of requested features. Please chime in if there’s anything missing!