5 votos

Anulando toda la fila en la tabla de atributos de datos a la vez en QGIS

Tengo una situación como puedes ver a continuación:

introduce aquí la descripción de la imagen

y me gustaría poder borrar una fila completa de una sola vez. ¿Es posible?

9voto

Jeremy White Puntos 381

Puedes hacerlo con unas cuantas líneas en la consola de Python. Como con cualquier script que edite permanentemente una capa en su lugar (como este), recomiendo hacer una copia de seguridad de tu archivo primero. Otra advertencia: esto no funcionará con GeoPackage sin algún manejo lógico adicional porque no se te permite editar la columna "fid".

Simplemente pega el siguiente script en un nuevo editor en la consola de Python, selecciona tu capa, selecciona la fila/elemento en la tabla de atributos que quieres 'anular' y ejecuta el script. El resultado será que todos los valores de la columna se cambiarán a NULL (no vacíos). Mira el ejemplo de resultado a continuación:

introducir descripción de la imagen aquí

lyr = iface.activeLayer()
ft = lyr.selectedFeatures()[0]
att_map = {ft.id(): {i: NULL for i in range(len(lyr.fields()))}}
lyr.dataProvider().changeAttributeValues(att_map)

2voto

chhh Puntos 1154

Probablemente la forma más rápida - rápida y sucia - es alternar el modo de edición, ir al primer campo, hacer clic en Eliminar, presionar Tab para pasar al siguiente campo, presionar Eliminar, presionar Tab, etc. Rápido y eficiente, pero no muy elegante.

Otra opción es iniciar la Calculadora de campos desde Menú Procesamiento > Caja de herramientas y luego ejecutarla en modo por lotes para cada campo con el valor NULL.

0voto

zust4you Puntos 33

En la misma línea de la respuesta de @Babel, podrías abrir la calculadora de campos, elegir actualizar el campo existente "NúmeroDeEnvío" e ingresar la expresión IF(NOT( "NúmeroDeEnvío" =NULL), NULL, NULL).

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X