Cómo mantener los ceros a la izquierda en el archivo csv cuando se trabaja con QGIS

8

Soy nuevo en QGIS y en los Sistemas de Información Geográfica en general, y tampoco tengo experiencia en informática.

Tengo un archivo shape que funciona bien, y luego tengo un archivo en formato CSV, y trato de unir estos dos archivos, usando una columna que debe ser igual entre dos archivos. El problema es que algunos de los números tienen ceros a la izquierda (son una especie de código postal en mi país), que desaparecen del archivo CSV cuando lo importo a QGIS ...

¿Hay alguna forma simple de mantener los ceros a la izquierda?

En el archivo de forma, los ceros iniciales no desaparecen.

João Santos
fuente
Definitivamente debe tratar los campos de código postal como cadenas / texto.
Alexandre Neto

Respuestas:

9

Puede especificar valores de tipo mediante el uso de un archivo CSVT, de la siguiente manera:

"Integer(6)","Real(5.5)","String(22)"

Si se nombra su archivo csv data.csv, nombrará su archivo csvt data.csvt.

Anita Graser (aquí conocida como underdark) ha escrito una publicación de blog relacionada con esto. Está disponible en: https://anitagraser.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/

También me referiría a este Q / A para más información.

Editar: para ser más precisos, debe especificar su columna como "Cadena" para mantener los ceros a la izquierda . Otra opción también sería usar la lpad()función de la calculadora . Ver las siguientes preguntas y respuestas .

Por ejemplo : lpad('22', 4, 0), will return '0022'

simo
fuente
Me pregunto quién inventó ese ejemplo, pero me lo devuelve 2200. En cambio, sugiero relleno izquierdo , como se explica en gis.stackexchange.com/questions/208686/…
AndreJ
gracias por señalar esto ... Llegué tarde cuando respondí ;-)
simo
No estoy seguro, pero encerrar los valores de cadena entre comillas dobles "0082" en el archivo CSV podría ser suficiente.
user30184
1
También quería agregar que es necesario cargar los archivos .csv y .csvt al mismo tiempo en QGis a través de Layer -> Add Layer -> Add Vector Layer method.
Michael Workman