opendatasicilia / tansignari

"T'ansignari e t'appeddiri"
http://tansignari.opendatasicilia.it
Creative Commons Attribution 4.0 International
18 stars 10 forks source link

Togliere righe con sole virgole da file csv #261

Closed maupao closed 2 months ago

maupao commented 2 months ago

Ho questa esigenza: in un file csv che ha come delimitatore di campi la virgola, ci sono alcune righe che sono vuote rispetto ai contenuti, ma hanno una serie di virgole, tante quanti sono i campi. Riporto qui un esempio: 2008,M,EH,F70,/,Si,9 2008,M,EH,F90,F81.3F93.2,Si,9 ,,,,,, 2007,F,EH,R41.8,F90.0F81.9G40.3,Si,9 ,,,,,, 2006,M,EH,F91,F80.9,Si,18 2006,M,EH,F81.9,Q25Q36 R41.8,Si,9 2005,M,EH,F43.25,F90.1,Si,9 ,,,,,, ,,,,,, ,,,,,,

Avete qualche suggerimento su come procedere? Sono in ambiente linux.

p.s. spero di aver capito bene come funziona la proposta di nuova ricetta. Ho seguito questa guida ma senza risultato...

aborruso commented 2 months ago

Ciao @maupao e benvenuto.

Userò come input il tuo CSV senza intestazione

2008,M,EH,F70,/,Si,9
2008,M,EH,F90,F81.3F93.2,Si,9
,,,,,,
2007,F,EH,R41.8,F90.0F81.9G40.3,Si,9
,,,,,,
2006,M,EH,F91,F80.9,Si,18
2006,M,EH,F81.9,Q25Q36 R41.8,Si,9
2005,M,EH,F43.25,F90.1,Si,9
,,,,,,
,,,,,,
,,,,,,

Io userei lo straordinario Miller, che ha un verbo per eliminare le righe vuote e con il comando

mlr --csv -N skip-trivial-records input.csv >output.csv

otterresti

2008,M,EH,F70,/,Si,9
2008,M,EH,F90,F81.3F93.2,Si,9
2007,F,EH,R41.8,F90.0F81.9G40.3,Si,9
2006,M,EH,F91,F80.9,Si,18
2006,M,EH,F81.9,Q25Q36 R41.8,Si,9
2005,M,EH,F43.25,F90.1,Si,9

Qualche nota:

In questo tuo caso, anche grep e espressioni regolari

<input.csv grep -vP '^,+' >output.csv
maupao commented 2 months ago

Ti ringrazio moltissimo, i due comandi che mi suggerisci fanno esattamente quello che cercavo. Per fare altri lavori di pulizia dei dati sto pasticciando anche con sed, ho fatto un ricerca ma purtroppo senza risultati.

aborruso commented 2 months ago

Ciao @maupao con un CSV è sempre meglio usare un tool CSV aware. Come Miller.

aborruso commented 2 months ago

Ciao @maupao hai testato quanto proposto? Ha funzionato?

Se sì, questo spazio funziona così https://tansignari.opendatasicilia.it/about/#come-funziona 🙃

dennisangemi commented 2 months ago

Che bello scambio! Mi permetto di intromettermi per indicare una risorsa utile: https://tansignari.opendatasicilia.it/ricette/tansignari/come_scrivere_una_ricetta/

maupao commented 2 months ago

Ciao @aborruso testato e funziona il suggerimento con Miller, adesso mi metto a produrre la ricetta (sempre che ne sia capace :-) ), se siete d'accordo pensavo di aggiungerla qui.

maupao commented 2 months ago

Che bello scambio! Mi permetto di intromettermi per indicare una risorsa utile: https://tansignari.opendatasicilia.it/ricette/tansignari/come_scrivere_una_ricetta/

Grazie mille per il suggerimento @dennisangemi provvedo in giornata a produrre la ricetta: le indicazioni nella pagina che hai messo sono molto chiare.

aborruso commented 2 months ago

Grazie mille per il suggerimento @dennisangemi provvedo in giornata a produrre la ricetta: le indicazioni nella pagina che hai messo sono molto chiare.

Ok!

aborruso commented 2 months ago

Ciao @maupao da oggi sei uno chef di "t'ansignari" https://tansignari.opendatasicilia.it/chefs/paolo-mauri/

maupao commented 2 months ago

Wow!! Che onore, grazie a voi per questa risorsa che spinge a rimettere in circolo le cose che si imparano.