¿Cambiar el valor del atributo de capa CSV de texto a número en QGIS?

28

Leí en un archivo CSV para vincular a un archivo .shp.

Todas las variables que son solo números llegaron como texto.

¿Cómo cambio las variables de texto a numéricas en QGIS?

HealthMaps
fuente

Respuestas:

37

Una vez tuve la misma pregunta. La respuesta es que coloca un archivo en la misma carpeta con el csvt final. Por ejemplo, su nombre de archivo es xyzdata.csv, agregue el archivo xyzdata.csvt

Este puede editarlo con el editor, por ejemplo. Y en él establece el tipo de datos de esta manera. "Entero", "Cadena", "Entero", "Entero", "Cadena", "Real"

El entero ahora es la variable para la primera columna, la cadena para la segunda y así sucesivamente ... Asegúrese de que los archivos tengan un nombre idéntico.

Editar: Vea aquí también si es necesario: http://underdark.wordpress.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/

Shepherdjo
fuente
Muchas gracias1, ¿es cierto que todos los archivos CSV se leerán como texto? Tal vez imaginé esto, pero cuando comencé a usar QGIS hace un tiempo, vinculé un archivo CSV y los números eran números. Parece que esta información debería estar en el manual del usuario. (tal vez me lo perdí)
HealthMaps
Sí, eso también fue bastante extraño para mí. Pero si solo tiene unas pocas columnas, este método es fácil de realizar. Entonces ... ¿te funcionó realmente?
Shepherdjo
¡Sí, funciona perfectamente! Tenga cuidado al configurar su archivo CSVT en Excel; las comillas adicionales se atascan, etc. Utilizo SAS o R para crear los archivos que quiero vincular, por lo que no es demasiado problema crear un archivo CSVT junto con el archivo CSV. Parece que esto necesita ser arreglado. Otro SIG que uso ver números en una columna CSV, los lee como números.
HealthMaps
Encontré un complemento MMQGIS que cambiará una columna de texto a flotante o flotante a texto. Funciona solo para un archivo de forma, no un archivo vinculado o un archivo csv importado. Ver michaelminn.com/linux/mmqgis
HealthMaps
Bueno oír eso. Y gracias por la sugerencia de complemento. Le agradecería también, si acepta mi respuesta, ¿lo hará?
Shepherdjo
15

En lugar de jugar con el archivo de entrada, tratando de obtener una imagen perfecta, simplemente use la calculadora de campo para convertir el texto en un número / real. Vea los ejemplos a continuación:

Calculadora de campo

Calculadora de campo a número

Calculadora de campo a real

Tabla de atributos después de la función

nagytech
fuente
Cuando traje el archivo CSV no pude editarlo. El botón de edición estaba atenuado. ¿Cómo puedo hacer que sea editable?
HealthMaps
No estoy seguro de que pueda editar un csv a través de qGIS. Creo que leí mal su pregunta porque ya había importado los datos csv al archivo shape .
nagytech
2
Hice el enlace, .shp a un archivo csv que tenía columnas numéricas pero que en realidad eran texto. Aparentemente, no se puede editar en un archivo CSV por sí solo o si está vinculado a un archivo SHP. Así que guardé el archivo vinculado y luego lo volví a cargar y pude editar los archivos de números de texto a un formato entero como usted sugirió. Parece que usar el archivo .csvt funciona mejor si tiene muchas columnas de texto que necesitan convertirse y luego use el método de la calculadora de campo si no hay tantas. Sería útil poder editar el archivo CSV por sí solo, no vinculado a nada.
HealthMaps
11

En lugar de cargar el archivo .csv usando Agregar capa de vector, use la herramienta Capa de texto delimitado. Intentará detectar el tipo de datos más adecuado para cada columna.

Para obtener más detalles, consulte la guía del usuario de QGIS .

ingrese la descripción de la imagen aquí

bajo oscuro
fuente
Insta-fix! Gracias
user94812
5

MMQGis causó este problema y, como resultado, puede solucionarlo.

Una vez que se haya unido a su Shapefile & CSV Data, use la herramienta Modificar> Texto a flotante de MMQGis.

Como de costumbre, deja un rastro de archivos de forma intermedios basura pero qué más es nuevo

boulder_ruby
fuente
1

En QGIS 3.x, una fuente de error común es elegir el separador decimal incorrecto. Marque o desmarque la casilla "El separador decimal es una coma" antes de cargar su CSV en QGIS:

ingrese la descripción de la imagen aquí

MrXsquared
fuente
-2

Otra alternativa en el caso de que se gestionen grandes conjuntos de datos y obviamente consuma mucho tiempo para proceder con la calculadora de campo (sin bucle) o dentro de un editor de texto: - guarde sus datos como variable CSV + XY + para la unión con nuestro archivo de forma polugona - cargue su CSV con el complemento (importar csv) luego guardar como shapefile (punto) - luego cerrar q gis - volver a la carpeta con el punto shapefile, duplicar la tabla / renombrar dbf correspondiente - abrir Qgis - cargar el nuevo dbf y unirse a shapefile (características poligonales)

Una piedra, dos palomas: tiene poderosamente 1) un punto shapefile con todos los datos y todas las posibilidades de representación 2) y un shapefile independiente con tabla dbf unida (¡editable!) Vinculada a polygone para cartografía temática

Esto es un poco grosero, pero bastante sencillo ...

bs_epidemio

bsepidemio
fuente
3
Si bien esta respuesta analiza cómo obtener el .csvarchivo en un formato editable, no aborda la pregunta original de cómo convertir un valor de atributo de un texto a un número . Si bien es importante tener preguntas centradas y de calidad, es igualmente crítico que las respuestas a esas preguntas sean tan centradas y relevantes como sea posible a lo que se preguntó originalmente.
Obtener espacial