Ja hem vist que sovint les dades que trobem o recollim són brutes: les columnes o altres camps poden contenir una barreja de text i dades numèriques; pot ser que falti alguna dada; o potser esteu intentant combinar dos conjunts de dades separats i els noms dels camps no coincideixen del tot, o la gent ha utilitzat una etiqueta de maneres lleugerament diferents.
Aquí és quan necessiteu netejar les vostres dades (un procés també conegut com a data munging o data wrangling). S'estima que el 80% del treball d'un científic de dades implica netejar i preparar les dades.
Doneu una ullada al conjunt de dades següent sobre animals en un zoològic. El conjunt de dades només mostra un petit nombre d'animals i, per tant, només és una mostra d'un conjunt de dades més gran:
Quins problemes hi veieu?
Falten dades
Registres duplicats
Dades no vàlides (fora de l'interval normal)
Format incoherent de les dades (formats de data diferents en aquest cas)
La varietat de conjunts de dades fa que els científics de dades no puguin utilitzar una norma general per netejar, cada conjunt de dades és diferent i requerirà un procés de neteja diferent. Seguidament, veurem alguns dels problemes més habituals i com solucionar-los:
Mira AQUEST full de càlcul, és el control d'estoc a les botigues que utilitza una editorial de llibres per saber si ha d'enviar més llibres a alguna botiga i alhora verificar les vendes. El full és molt visual i bonic, però no permet treballar-hi més enllà d'actualitzar els valors (si aplico filtres, ordeno, etc. quedarà un garbuix). Si hi pogués treballar podria treure molta més informació molt fàcilment: quin és l'estoc total d'un determinat llibre o autor, quin és l'estoc mitjà de cada llibre, quina llibreria té mes/menys estoc, etc. Algunes normes importants que s'han de respectar per poder treballar amb dades són:
No utilitzis formats de color, marges, cel·les unides, etc.
Cada observació o datapoint ha d'ocupar una fila (ha de tenir tots els valors de les variables)
Cada columna ha de tenir un tipus d'informació (per exemple, text, número, data)
Cada cel·la ha de contenir només un valor
Introduïu els encapçalaments de les columnes en una fila a la part superior de la llista. No utilitzeu mai més d'una fila i mai combineu cel·les per als encapçalaments.
No deixeu files o columnes senceres buides.
Si voleu posar notes o informació addicional, poseu-la en un full a part.
Aquí teniu un exemple d'una bona taula (encara que força curta):
Només volem files, columnes i valors. Elimina la resta. I elimina els formats!!
Algunes de les funcionalitats més útils dels fulls de càlcul que us poden servir per estructurar millor les vostres dades són:
Format -> Esborra el format: Elimina colors, vores i cel·les combinades.
Enganxat espacial: per enganxar dades sense format o transposar les dades (invertir les files i columnes).
SPLIT(): divideix el text en columnes.
IF(): condicional; ens pot servir per omplir valors buits.
Mostra -> Immobilitza: Aquesta funció "bloqueja" les files i/o columnes en posició perquè romanguin a la pantalla mentre us desplaceu. Us pot ser útil si esteu treballant amb una llista que és més llarga/ample que la vostra pantalla i les etiquetes desapareixen quan us desplaceu, o voleu comparar dades de cel·les separades.
TRUC: Si us voleu desplaçar fins als valors extrems dels vostres conjunts de dades, prem Ctrl + Fletxa
Potser no te n'has adonat, però el nostre dataset de l'estoc de llibres encara no està a punt per treballar-hi. Si proves d'ordenar la columna "Autor" o fas un gràfic de barres de recompte d'aquesta columna, veuràs que hi ha algunes coses estranyes.
Són els maleïts espais en blanc i errors de coherència en el text (alguns noms estan escrits tot en majúscules i altres en minúscula).
Per solucionar problemes d'espais en blanc i duplicats són molt útils les opcions del menú:
Dades -> Neteja de dades
Per unificar els textos poden ser molt útils funcions de text, com:
=UPPER() -> Converteix tot el text a majúscules
=LOWER() -> Converteix tot el text a minúscules
=CONCATENATE() -> Per unir diferents cadenes de text
=EXACT() -> Comprova si dues cadenes són idèntiques
=TRIM() -> Suprimeix els espais inicials, addicionals i repetits que hi hagi en un text.
=SUBSTITUTE() -> Substitueix el text existent per un de nou.
Tres no és un número. Almenys no quan s'escriuen com a text en una cel·la d'un full de càlcul. El vostre full de càlcul necessita que tot sigui precís, definit i coherent; si no es confondrà i farà coses estranyes.
Els fulls de càlcul intenten determinar el tipus de dades de forma automàtica sempre que introduïu un valor. Però sovint s'equivoca. Si representeu un número o una data d'una manera que no permeti al programa determinar el seu tipus correctament, no podreu ordenar i filtrar correctament, no podreu sumar, trobar mitjanes, trobar l'interval entre dos dates...
Amb els fulls de càlcul, hi ha tres formats bàsics de dades:
Números , com 100. Les dates també són números!
Text , com cent.
Fórmula , com =SUMA(99+1), que crea un "valor calculat".
Procureu seguiu dues regles bàsiques:
Sigueu coherents i no barregeu diferents tipus de dades en una columna.
Feu saber al full de càlcul quin tipus de dades hi ha a cada columna.
De vegades, les dades poden haver-se introduït amb estàndards de format diferents, com per exemple amb el separador decimal punt o coma, o amb les dates, ja que els països tenen estàndards diferents. El Regne Unit utilitza DD/MM/AAAA, Amèrica del Nord utilitza MM/DD/AAAA i molts altres països utilitzen AAAA/MM/DD.
Algunes de les funcionalitats que et poden ser més útils són:
Format -> Número -> Tipus de dada
Cerca i reemplaça: Molt útil per convertir els separadors decimals de punt a coma.
Quan falten valors en un conjunt de dades, hi ha diverses maneres de procedir, depenent de la quantitat i la importància dels valors que falten i del tipus d'anàlisi que es vol fer. Algunes de les opcions més comunes són:
Eliminar les files o columnes on falten valors: Aquesta és una opció adequada quan falten poques dades. Però si falten molts valors pot suposar una pèrdua significativa d'informació.
Substituir els valors que falten per la mitjana o la moda (el valor més freqüent) dels valors presents en la columna o fila corresponent: Aquesta és una opció adequada si els valors que falten són aleatoris i la seva quantitat és relativament petita.
Interpolació, estimar el valor que falta utilitzant els valors que el precedeixen o el segueixen en la sèrie temporal: Això és adequat si la variabilitat en les dades és suau i la tendència és lineal. Però, si hi ha una forta variabilitat o una tendència no lineal en les dades, aquesta tècnica pot no ser la més adequada.
Omplir els valors que falten amb zeros: Si els valors que falten representen una absència real de l'observació o de l'esdeveniment, omplir-los amb zeros pot ser adequat.
La funció de referència per identificar les cel·les buides pot ser un condicional IF() o la funció ISBLANK().
Alguns exemples de possibles fórmules són:
=if(G2="";G1;G2) ; mirem si la cel·la G2 està buida, si ho està li posem el valor de la cel·la de sobre, sinó deixem el valor que té.
=if(I5="";AVERAGE(I3:I4);I5) ; mirem si I5 està buida, si ho està li posem la mitjana dels dos valors de sobre, sinó deixem el valor que té.
Els conjunts de dades s'han d'inspeccionar per decidir quines dades es necessiten. Només s'han d'utilitzar dades rellevants per al problema. Les dades irrellevants o duplicades augmenten el temps de processament. La duplicació es produeix sovint durant la recollida de dades. Pot ser a causa d'un error d'entrada de dades o quan s'han combinat conjunts de dades de diverses fonts.
Per eliminar columnes (variables) que no són rellevants:
Selecciona tota la columna.
Botó dret -> Suprimeix la columna.
Per eliminar dades duplicades:
Selecciona tot el full.
Dades -> Neteja de dades -> Suprimeix els duplicats.
TRUC: Si voleu desfer una operació, com per exemple dades que heu eliminat, prem Ctrl + Z
Ordenar i filtrar les dades no és una operació pròpia només de la neteja de dades, són funcions molt útils i utilitzades en qualsevol fase del procés. Ja hem vist com ordenar tot el full en funció d'una columna. Una altra acció molt habitual amb els conjunts de dades és filtrar els valors que no voleu veure.
Al full de l'activitat anterior aneu a Dades -> Crea un filtre. Veureu que apareix un petit triangle verd al costat dels noms de les columnes, és important que hi hagi un triangle a totes les columnes, no només a una. Ara ja podeu filtrar les dades per la columna (variable) que us interessi, només hem de clicar al triangle i definir com volem filtrar les dades, les opcions més habituals són:
Filtrar per condició: hem d'escriure o seleccionar de la llista quina condició han de complir les dades que volem que es mostrin.
Filtrar per valor: es mostra una llista amb tots els valors o categories de la llista i seleccionem els que volem que es mostrin.
És important tenir en compte que quan s'aplica un filtre les dades que no s'han de mostrar queden amagades, però no s'eliminen. En qualsevol moment puc eliminar el filtre i tornar a veure totes les dades.
Ara que ja saps com funciona aplica el filtre que consideres oportú per tal que només es mostrin les dades de Catalunya (que són les que ens interessen). Copia aquestes dades en un altre full i elimina el full antic, així només tindrem les dades que necessitarem i el seu processament serà més ràpid.