Modifica del valore dell'attributo del livello CSV da testo a numero in QGIS?


28

Ho letto in un file CSV per il collegamento a un file .shp.

Tutte le variabili che sono solo numeri sono arrivate come testo.

Come posso modificare le variabili di testo in numeriche in QGIS?

Risposte:


37

Una volta ho avuto la stessa domanda. La risposta è che hai messo un file nella stessa cartella con il csvt finale. Ad esempio il tuo nome file è xyzdata.csv, aggiungi il file xyzdata.csvt

Questo è possibile modificare con l'editor per esempio. E in esso si imposta il tipo di dati in questo modo. "Integer", "String", "intero", "intero", "String", "Real"

Integer è ora la variabile per la prima colonna, stringa per la seconda e così via ... Assicurarsi che i file siano denominati in modo identico.

Modifica: vedi anche qui se necessario: http://underdark.wordpress.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/


Grazie mille1 quindi è vero che tutti i file CSV verranno letti come testo? Forse l'ho immaginato, ma quando stavo iniziando con QGIS poco fa ho collegato un file CSV e i numeri erano numeri. Sembra che queste informazioni dovrebbero essere nel manuale dell'utente. (forse mi sono perso)
HealthMaps

Sì, è stato abbastanza strano anche per me. Ma se hai solo poche colonne, questo metodo è facile da eseguire. Quindi ... ha funzionato davvero per te?
Shepherdjo,

Sì, funziona perfettamente! Fai attenzione alla configurazione del tuo file CSVT in Excel; tra virgolette rimarranno bloccate, ecc. Uso SAS o R per creare i file che voglio collegare, quindi non è un problema creare un file CSVT insieme al file CSV. Sembra che questo debba essere risolto. Un altro GIS che uso vede i numeri in una colonna CSV, li legge come numeri.
HealthMaps,

Ho trovato un plug-in MMQGIS che cambierà una colonna da testo a float o float a testo. Funziona solo per un file di forma, non un file collegato o un file CSV importato. Vedi michaelminn.com/linux/mmqgis
HealthMaps

Buono a sentirlo. E grazie per il suggerimento plug-in. Ti sarei anche grato, se accetti la mia risposta, vero?
Shepherdjo,

15

Invece di fare confusione con il file di input, cercando di ottenere un'immagine perfetta, basta usare il calcolatore di campo per convertire il testo in un numero / reale. Vedi gli esempi seguenti:

Field Calculator

Field Calculator to Number

Field Calculator su Real

Tabella degli attributi dopo la funzione


Quando ho portato il file CSV non sono riuscito a modificarlo. Il pulsante di modifica è stato disattivato. Come posso farlo modificabile?
HealthMaps

Non sono sicuro che puoi modificare un CSV tramite qGIS. Penso di aver letto male la tua domanda in quanto avevi già importato i dati CSV nel file di forma .
nagytech,

2
Ho fatto il collegamento, .shp a un file CSV che aveva colonne numeriche ma erano davvero testo. Apparentemente non è possibile eseguire alcuna modifica su un file CSV da solo o se è collegato a un file SHP. Quindi ho salvato il file collegato, quindi ricaricato e sono stato in grado di modificare i file dei numeri di testo in un formato intero come suggerito. Sembra che usare il file .csvt funzioni meglio se hai molte colonne di testo che devono essere convertite e quindi usa il metodo del calcolatore di campo se non ce ne sono così tante. Sarebbe utile poter modificare il file CSV da solo, non collegato a nulla.
HealthMaps,

11

Invece di caricare .csv usando Aggiungi livello vettoriale, usa lo strumento Livello testo delimitato. Tenterà di rilevare il tipo di dati più adatto per ogni colonna.

Per maggiori dettagli, consultare la guida per l'utente di QGIS .

inserisci qui la descrizione dell'immagine


Insta-fix! Grazie
user94812 il

5

MMQGis ha causato questo problema e, a quanto pare, può risolverlo.

Dopo aver unito i tuoi dati Shapefile e CSV, usa lo strumento MMQGis Modifica> Text to Float.

Come al solito, lascia una scia di file di forma intermedi spazzatura, ma cos'altro è nuovo


1

In QGIS 3.x una fonte di errore comune è scegliere il separatore decimale errato. Seleziona o deseleziona la casella "Il separatore decimale è una virgola" prima di caricare il tuo CSV in QGIS:

inserisci qui la descrizione dell'immagine


-2

Un'altra alternativa nel caso di grandi set di dati da gestire e ovviamente dispendioso in termini di tempo per procedere con il calcolatore di campo (senza loop) o all'interno di un editor di testo: - salva i tuoi dati come variabile CSV + XY + per il giunto con il nostro shapefile polugone - upload il tuo CSV con il plug-in (import csv) quindi salva come shapefile (punto) - quindi chiudi q gis - torna alla cartella con il punto shapefile, duplica la corrispondente tabella dbf / rinomina - apri Qgis - carica il nuovo dbf e unisciti a shapefile (funzionalità poligono)

Una pietra, due piccioni: possibilmente 1) un punto shapefile con tutti i dati e tutte le possibilità di rappresentazione 2) e un file shape indipendente con tabella dbf unita (modificabile!) Collegata a poligone per la cartografia tematica

Questo è un po 'maleducato, ma abbastanza semplice ...

bs_epidemio


3
Mentre questa risposta discute come ottenere il .csvfile in un formato modificabile, non affronta la domanda originale su come convertire un valore di attributo da un testo in un numero . Sebbene sia importante avere domande mirate e di qualità, è altrettanto essenziale che le risposte a tali domande siano quanto più mirate e pertinenti possibile a ciò che è stato posto originariamente.
Ottieni Spatial il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.