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!