So behalten Sie führende Nullen in der CSV-Datei bei, wenn Sie mit QGIS arbeiten

8

Ich bin neu in QGIS und Geographic Information Systems im Allgemeinen und habe auch keine Erfahrung mit Informatik.

Ich habe ein Shapefile, das gut funktioniert, und dann habe ich eine Datei im CSV-Format. Ich versuche, diese beiden Dateien mithilfe einer Spalte zu verbinden, die zwischen zwei Dateien gleich sein sollte. Das Problem ist, dass einige der Zahlen führende Nullen haben (sie sind eine Art Postleitzahl in meinem Land), die aus der CSV-Datei verschwinden, wenn ich sie in QGIS importiere ...

Gibt es eine einfache Möglichkeit, führende Nullen beizubehalten?

Im Shapefile verschwinden die führenden Nullen nicht.

João Santos
quelle
Auf jeden Fall müssen Sie die Postleitzahlenfelder als Strings / Text behandeln.
Alexandre Neto

Antworten:

9

Sie können Typwerte mithilfe einer CSVT-Datei wie folgt angeben:

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

Wenn Ihre CSV-Datei benannt ist, benennen data.csvSie Ihre CSV-Datei data.csvt.

Anita Graser (hier als Underdark bekannt) hat einen Blogpost dazu geschrieben. Es ist verfügbar unter: https://anitagraser.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/

Ich würde auch auf diese Frage / Antwort für weitere Informationen verweisen .

Bearbeiten: Um genauer zu sein, sollten Sie Ihre Spalte als "String" angeben, um führende Nullen beizubehalten . Eine andere Option wäre auch die Verwendung der lpad()Funktion aus dem Taschenrechner . Siehe folgende Fragen und Antworten .

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

simo
quelle
Ich frage mich, wer dieses Beispiel erfunden hat, aber es kehrt 2200für mich zurück. Stattdessen schlage ich vor, links aufzufüllen
AndreJ
danke für den Hinweis ... War spät, als ich antwortete ;-)
simo
Ich bin nicht sicher, aber das Einfügen der Zeichenfolgenwerte in doppelte Anführungszeichen "0082" in die CSV-Datei könnte ausreichen.
user30184
1
Ich wollte auch hinzufügen, dass es notwendig ist, die CSV- und CSVT-Dateien gleichzeitig in QGis über die Methode Ebene -> Ebene hinzufügen -> Vektorebene hinzufügen hochzuladen.
Michael Workman