• MoonHawk@lemmy.world
    link
    fedilink
    English
    arrow-up
    27
    arrow-down
    1
    ·
    edit-2
    3 months ago

    What do you mean not optimal? This is quite literally the most popular format for any serious data handling and exchange. One byte per separator and newline is all you need. It is not compressed so allows you to stream as well. If you don’t need tree structure it is massively better than others

    • QuizzaciousOtter@lemm.ee
      link
      fedilink
      English
      arrow-up
      14
      ·
      3 months ago

      I think portability and easy parsing is the only advantage od CSV. It’s definitely good enough (maybe even the best) for small datasets but if you have a lot of data you need a compressed binary format, something like parquet.

    • elmicha@feddit.org
      link
      fedilink
      English
      arrow-up
      8
      ·
      3 months ago

      But which separator is it, and which line ending? ASCII, UTF-8, UTF-16 or something else? What about quoting separators and line endings? Yes, there is an RFC, but a million programs were made before the RFC and won’t change their ways now.

      Also you can gzip CSV and still stream them.

    • merari42@lemmy.world
      link
      fedilink
      English
      arrow-up
      4
      ·
      3 months ago

      Have you heard that there are great serialised file formats like .parquet from appache arrow, that can easily be used in typical data science packages like duckdb or polars. Perhaps it even works with pandas (although do not know it that well. I avoid pandas as much as possible as someone who comes from the R tidyverse and try to use polars more when I work in python, because it often feels more intuitive to work with for me.)

      • driving_crooner@lemmy.eco.br
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 months ago

        I used to export my pandas DataFrames as pickles, but decided to test parquet and it was great. It was like 10x smaller and allowed me to had the the databases on a server directory instead of having to copy everything to the local machine.