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!