Ist es möglich, eine neue Spalte mit dem Namen "Test" zu erstellen und den ersten Teil der Spalte "Name" zu teilen, durch den geteilt wird -
?
Sehen Sie unten, wie es aussehen sollte:
Ja, du kannst.
Verwenden Sie den Feldrechner mit dem folgenden Ausdruck:
left( "Name", strpos( "Name" ,'-'))
Die Funktion strpos () gibt die Indexposition des ersten '-' Zeichens zurück und die Funktion left () "schneidet" die Zeichenfolge vor dieser Position.
Sie können den Feldrechner mit dem folgenden Ausdruck verwenden:
string_to_array("Nombre", ' ')
Die Funktion string_to_array () teilt den String mit dem angegebenen Trennzeichen in ein Array auf.
Wenn Sie eine Position des Arrays wünschen, können Sie die Position hinzufügen, und der Wert wird zurückgegeben. so was:
string_to_array("Nombre", ' ')[2]
Mögliche Lösung mittels PyQGIS.
Nehmen wir an, es gibt eine Punktebene "some_points"
mit der Attributtabelle (siehe Abbildung unten).
Fahren Sie fort Plugins > Python Console > Show Editor
und fügen Sie das folgende Skript ein
from PyQt5.QtCore import QVariant
layer = iface.activeLayer()
if not layer.isValid():
print("Layer failed to load!")
layer_provider = layer.dataProvider()
layer_provider.addAttributes([QgsField("Test", QVariant.String)])
layer.updateFields()
features=layer.getFeatures()
layer.startEditing()
for f in features:
attrs = {2: f['info'].split('-')[0]}
layer_provider.changeAttributeValues({f.id(): attrs})
layer.commitChanges()
Die Ausgabe wird suchen
Verweise:
.split()
Funktion verwenden?