# Explorez vos CSV avec csv2datasette

**URL:** <https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449>\
**Category:** Veille\
**Created:** [Mars 17, 2024, 8:43 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449 "2024-03-17T20:43:46Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![CharlesNepote](https://teamopendata.org/user_avatar/teamopendata.org/charlesnepote/32/174_2.png) [@CharlesNepote](https://teamopendata.org/u/CharlesNepote)\
**Post date:** [Mars 17, 2024, 8:43 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/1 "2024-03-17T20:43:46Z")

</div>

Vous vous souvenez [WTFcsv](https://www.databasic.io/en/wtfcsv/), conçu par Rahul Bhargava et Catherine D’Ignazio, présenté au public français à Data Literacy Conference en 2018 ? Il s’agit d’un petit outil permettant d’explorer très rapidement le contenu d’un fichier CSV à travers de petits graphes ou des données statistiques. Idéal pour explorer rapidement un jeu de données open data.

J’ai toujours apprécié cet outil mais il a plusieurs défauts qui freinent son usage :

- il ne gère pas bien les différentes formes de CSV (points-virgules, TSV, etc.)
- c’est un outil SAS hébergé je ne sais où, je ne lui confierais pas de fichiers hors open data
- enfin, il ne peut pas ouvrir de gros fichiers

Pour toutes ces raisons, et comme je suis un fan de [Datasette](https://datasette.io/), j’ai créé [csv2datasette](https://gist.github.com/CharlesNepote/3fdb8982dc873f34aa7c320bef580fe3), un petit script en bash qui permet d’ouvrir un fichier directement dans Datasette, avec la possibilité d’obtenir automatiquement des stats pour chaque colonne : «&nbsp;the column name, the number of unique values, the number of filled rows, the number of missing values, the minimum value, the maximum value, the median, the 10th, 25th, 50th, 75th and 90th centiles, the average, the sum, the shortest string, the longest string, the number of numeric values, the number of text values, the number of probable ISO dates, the top 3 frequent values&nbsp;». Pratique pour bien comprendre le contenu de chaque colonne : les manques, les valeurs aberrantes, etc.

 ![image](https://teamopendata.org/uploads/default/original/2X/7/73006fc3f02ea7856953bc8457c4a34645310401.png)

Une fois le CSV chargé, vous profitez de toutes les fonctionnalités de Datasette qui vous permettent d’aller assez loin dans l’exploration, avec son interface utilisateur simplifiée ou directement en SQL.

C’est assez modeste, le design est discutable, le truc est un peu trop geeky (il faut installer Datasette, plus l’extension REGEXP pour SQLite) et testé seulement sous Linux, mais passé toutes ces barrières, c’est un outil qui peut peut-être vous faire gagner du temps si vous avez l’habitude d’explorer des fichiers CSV.

Comme il m’est très utile, je me suis dit qu’il pourrait en intéresser certains ici.

Et vous, qu’utilisez-vous en pareil cas ?

---

<div class="post-metadata">

**Author:** ![johan](https://teamopendata.org/user_avatar/teamopendata.org/johan/32/3008_2.png) [@johan](https://teamopendata.org/u/johan)\
**Post date:** [Mars 18, 2024, 5:17 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/2 "2024-03-18T17:17:18Z")

</div>

Il existe aussi un plugin pour ajouter une UI d’import de CSV :

> **[GitHub - simonw/datasette-upload-csvs: Datasette plugin for uploading CSV files and...](https://github.com/simonw/datasette-upload-csvs)**
>
> Datasette plugin for uploading CSV files and converting them to database tables

Perso pour explorer ou datatouiller un fichier CSV en local j’aime bien [OpenRefine](https://openrefine.org/). La force de Datasette est dans le cas d’usage de publication d’un fichier.

Dans les trucs récents mais que j’ai encore jamais essayés, je pense que [Observable Framework](https://observablehq.com/framework/) c’est le turfu (points bonus si c’est combiné avec [DuckDB-WASM](https://observablehq.com/framework/lib/duckdb)).

[https://observablehq.com/blog/observable-2-0](https://observablehq.com/blog/observable-2-0)

Ce qu’en pense Simon Willison (créateur de Datasette) :

> **[Interesting ideas in Observable Framework](https://simonwillison.net/2024/Mar/3/interesting-ideas-in-observable-framework/)**
>
> Mike Bostock, Announcing: Observable Framework: Today we’re launching Observable 2.0 with a bold new vision: an open-source static site generator for building fast, beautiful data apps, dashboards, and reports. Our …

---

<div class="post-metadata">

**Author:** ![samgoeta](https://teamopendata.org/user_avatar/teamopendata.org/samgoeta/32/6_2.png) [@samgoeta](https://teamopendata.org/u/samgoeta)\
**Post date:** [Mars 18, 2024, 8:45 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/3 "2024-03-18T20:45:18Z")

</div>

Ca a l’air super @CharlesNepote mais tu m’as perdu sur le bash.

Pour les noobs comme moi, je recommande Exploratory qui est bâti sur R et donne accès à beaucoup de fonctions de R dans une interface amicale-utilisatrice (user-friendly) : [https://exploratory.io/](https://exploratory.io/)  
Il y a une version gratuite dès lors que les données sont rendues publiques (le même modèle que Tableau Public) que j’utilise avec mes étudiants : [Exploratory Public | Free Data Analytics and Visualization Platform](https://exploratory.io/public)  
_(⚠Exploratory n’est pas open source alors qu’il est bâti entièrement sur des composants ouverts)_

Evidemment, j’ai toujours en tête WTFCSV qui est vraiment super. Bah, Exploratory crée une page pour chaque data frame. Voici un exemple avec les données (fascinantes) d’un des très nombreux csv de la DSA transparency database : [sor\_instagram\_2024\_03\_17\_full\_00013\_00003](https://exploratory.io/data/AWf5RsD4TF/sor-instagram-2024-03-17-full-00013-00003-OSd8wRW0xp)

En terme d’interface, je trouve ça génial. On a un aperçu de chacune des colonnes, du nombre d’enregistrements qui évolue après chaque étape du traitement de données. Pédagogiquement, c’est ce que j’ai trouvé de mieux pour former à des usages avancés des données. Bien mieux que le tableur où en tant qu’enseignant, c’est impossible de savoir comment les données ont été transformées. Là on a résumé étape par étape et on peut revenir en arrière.

 ![Capture d’écran 2024-03-18 à 21.43.07](https://teamopendata.org/uploads/default/original/2X/7/79c72cc4616f8d8f3398267afc93b5fb44e7e497.png)

---

<div class="post-metadata">

**Author:** ![samgoeta](https://teamopendata.org/user_avatar/teamopendata.org/samgoeta/32/6_2.png) [@samgoeta](https://teamopendata.org/u/samgoeta)\
**Post date:** [Mars 18, 2024, 8:49 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/4 "2024-03-18T20:49:43Z")

</div>

Et sinon quand je veux faire un truc sérieux et reproductible, je fais du R. Et j’utilise le package {skimr} qui fait un super aperçu des données : [https://cran.r-project.org/web/packages/skimr/vignettes/skimr.html](https://cran.r-project.org/web/packages/skimr/vignettes/skimr.html)

Le résumé indique les variables par type avec des stats descriptives et un histogramme en ASCII du plus bel effet :

 ![skim_dataset.jpg](https://teamopendata.org/uploads/default/original/2X/4/40b3faae8a5983e18cb32fcefa5a81e186eced8c.webp)

[lire cet article sur skimr](https://delladata.fr/utilisez-le-package-skimr-en-complement-du-package-pastecs-pour-realiser-vos-analyses-statistiques-descriptives/)

---

<div class="post-metadata">

**Author:** ![joel](https://teamopendata.org/user_avatar/teamopendata.org/joel/32/321_2.png) [@joel](https://teamopendata.org/u/joel)\
**Post date:** [Mars 19, 2024, 10:12 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/5 "2024-03-19T10:12:35Z")

</div>

Huggingface a fait une interface assez cool d’exploration de ses datasets, exemple :

> **[CohereLabs/beir-embed-english-v3 · Datasets at Hugging Face](https://huggingface.co/datasets/CohereLabs/beir-embed-english-v3/viewer/arguana-corpus/train)**
>
> We’re on a journey to advance and democratize artificial intelligence through open source and open science.

 ![CleanShot 2024-03-19 at 11.11.23@2x](https://teamopendata.org/uploads/default/original/2X/1/1c6a58c7a12e58a77a4e7b2e8a83b83b98aacaa8.jpeg)

---

<div class="post-metadata">

**Author:** ![samgoeta](https://teamopendata.org/user_avatar/teamopendata.org/samgoeta/32/6_2.png) [@samgoeta](https://teamopendata.org/u/samgoeta)\
**Post date:** [Mars 19, 2024, 10:44 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/6 "2024-03-19T10:44:57Z")

</div>

Et on peut citer aussi l’explorateur de CSV de [data.gouv.fr](http://data.gouv.fr) qui fonctionne très bien : [exemple](https://explore.data.gouv.fr/fr/tableau?url=https%3A%2F%2Fwww.data.gouv.fr%2Ffr%2Fdatasets%2Fr%2F1c5075ec-7ce1-49cb-ab89-94f507812daf)

 ![Capture d’écran 2024-03-19 à 11.41.16](https://teamopendata.org/uploads/default/original/2X/0/0fc7653da98494188f9352bc0d2072e6915d42fb.png)

---

<div class="post-metadata">

**Author:** ![Enro](https://teamopendata.org/user_avatar/teamopendata.org/enro/32/454_2.png) [@Enro](https://teamopendata.org/u/Enro)\
**Post date:** [Mars 19, 2024, 11:09 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/7 "2024-03-19T11:09:14Z")

</div>

@samgoeta Sur ce dernier exemple on est plus sur de la visualisation de CSV et moins sur le profilage de données ([data profiling](https://en.wikipedia.org/wiki/Data_profiling)), non ?

---

<div class="post-metadata">

**Author:** ![samgoeta](https://teamopendata.org/user_avatar/teamopendata.org/samgoeta/32/6_2.png) [@samgoeta](https://teamopendata.org/u/samgoeta)\
**Post date:** [Mars 19, 2024, 11:11 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/8 "2024-03-19T11:11:40Z")

</div>

Oui effectivement mais comme tu peux le voir sur la dernière colonne, il y a quand même un aperçu des valeurs les plus fréquentes dans l’explorateur

---

<div class="post-metadata">

**Author:** ![AnthonyG](https://teamopendata.org/user_avatar/teamopendata.org/anthonyg/32/3316_2.png) [@AnthonyG](https://teamopendata.org/u/AnthonyG)\
**Post date:** [Mars 19, 2024, 1:21 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/9 "2024-03-19T13:21:50Z")

</div>

Pour ceux qui utilise VSCode, je conseille l’extension Data Wrangler, qui peut faciliter l’exploration et le nettoyage des données.

 ![image](https://teamopendata.org/uploads/default/original/2X/9/9db95b407ceec6ee74e4e29776fa8fe32c74e405.png)

---

<div class="post-metadata">

**Author:** ![Diane\_Thierry](https://teamopendata.org/user_avatar/teamopendata.org/diane_thierry/32/2142_2.png) [@Diane\_Thierry](https://teamopendata.org/u/Diane_Thierry)\
**Post date:** [Mars 19, 2024, 2:50 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/10 "2024-03-19T14:50:18Z")

</div>

Sur R, un autre package sympa pour explorer ses données en une ligne de code :

```auto
summarytools::dfSummary(data)

```

 ![Screenshot from 2024-03-19 15-29-49](https://teamopendata.org/uploads/default/original/2X/5/5080458f2d4640125b6b1d858d8e984fffecc013.png)

---

<div class="post-metadata">

**Author:** ![CharlesNepote](https://teamopendata.org/user_avatar/teamopendata.org/charlesnepote/32/174_2.png) [@CharlesNepote](https://teamopendata.org/u/CharlesNepote)\
**Post date:** [Mars 19, 2024, 6:48 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/11 "2024-03-19T18:48:10Z")

</div>

Toutes vos réponses sont hyper intéressantes ! Certaines je connaissais, d’autres seulement de nom, et d’autres pas du tout (les packages R, Data Wrangler).

Ce que j’ai cherché à faire avec csv2datasette, c’est un outil à la fois très rapide d’usage, local, et en ligne de commande, ce que je retrouve moins dans vos solutions SAS ou avec des outils où il faut lancer préalablement l’interface, faire Fichier / importer \> + sélectionner des options, etc. J’utilise aussi énormément Visidata qui fait des choses très simples [comme des histogrammes](https://jsvine.github.io/intro-to-visidata/basics/summarizing-data/) mais on atteint rapidement ses limites.

Peut-être c’est possible en R de lancer le chargement des packages et du CSV en une seule ligne de commande ? J’ai tout juste quelques notions en R…

---

<div class="post-metadata">

**Author:** ![Diane\_Thierry](https://teamopendata.org/user_avatar/teamopendata.org/diane_thierry/32/2142_2.png) [@Diane\_Thierry](https://teamopendata.org/u/Diane_Thierry)\
**Post date:** [Mars 26, 2024, 4:06 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/12 "2024-03-26T16:06:49Z")

</div>

@CharlesNepote disons qu’il faudrait au minimum deux lignes de code sur R, une pour charger le CSV (si le package est déjà installé, deux sinon) :

```auto
install.packages("readr") #si le package n'est pas déjà installé
data <- readr::read_csv("path/to/data.csv")

```

Une autre pour l’explorer :

```auto
summarytools::dfSummary(data)

```

---

<div class="post-metadata">

**Author:** ![samgoeta](https://teamopendata.org/user_avatar/teamopendata.org/samgoeta/32/6_2.png) [@samgoeta](https://teamopendata.org/u/samgoeta)\
**Post date:** [Mars 28, 2024, 9:48 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/13 "2024-03-28T09:48:57Z")

</div>

@Diane_Thierry petite question juste pour évaluer la faisabilité : pour que tout se passe en local, est-ce qu’avec flexdashboard (ou autre), on pourrait depuis une page web (sans charger R) importer un fichier et générer l’aperçu avec dfSummary ?  
Ou sinon avec une appli Shiny mais les données passent par les serveurs de RStudio, non ?

---

<div class="post-metadata">

**Author:** ![joel](https://teamopendata.org/user_avatar/teamopendata.org/joel/32/321_2.png) [@joel](https://teamopendata.org/u/joel)\
**Post date:** [Mars 28, 2024, 12:08 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/14 "2024-03-28T12:08:30Z")

</div>

Avec webR (R en Web assembly) tout peut se faire dans le navigateur sans serveur. Mais quitte à aller dans cette direction mieux vaut sans doute s’appuyer sur DuckDB, beaucoup plus robuste je pense.

---

<div class="post-metadata">

**Author:** ![Diane\_Thierry](https://teamopendata.org/user_avatar/teamopendata.org/diane_thierry/32/2142_2.png) [@Diane\_Thierry](https://teamopendata.org/u/Diane_Thierry)\
**Post date:** [Avril 8, 2024, 4:44 UTC](https://teamopendata.org/t/explorez-vos-csv-avec-csv2datasette/4449/15 "2024-04-08T16:44:50Z")

</div>

@samgoeta sans même passer par R en ligne il y a des applications Shiny qui ont été construites déjà, par exemple [celle-ci](https://jgassen.shinyapps.io/expand/).
