Te recomendamos que revises esta solución en un entorno controlado antes de pasarlo a producción, un saludo.
Solución:
Sí tu puedes.
Utilice la calculadora de campo con la siguiente expresión:
left( "Name", strpos( "Name" ,'-'))
La función strpos() devolverá la posición de índice del primer carácter ‘-‘ y la función left() “recorta” el string antes de esa posición.
Puede utilizar la calculadora de campo con la siguiente expresión:
string_to_array("Nombre", ' ')
La función string_to_array() se divide string en una array utilizando el delimitador suministrado.
Si desea una cierta posición de la array, puede agregar la posición y devolverá el valor. como esto:
string_to_array("Nombre", ' ')[2]
Posible solución mediante PyQGIS.
Supongamos que hay una capa de puntos llamada "some_points"
con su attribute tabla, vea la imagen de abajo.
Proceder con Plugins > Python Console > Show Editor
y pegue el script a continuación
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()
La salida estará buscando
Referencias:
- Tutorial QGIS Python: Cómo Agregar/Eliminar Campo y Actualizar el Valor del Atributo
- Libro de recetas para desarrolladores de PyQGIS
Te mostramos reseñas y calificaciones
Si te animas, tienes la opción de dejar una noticia acerca de qué le añadirías a esta reseña.