Eliminar filas en las que la celda de una columna específica está vacía


8

¿Hay alguna forma de eliminar todas las filas en QGIS en las que la celda de una columna específica en la tabla de atributos está vacía? por ejemplo, la línea tres en la tabla a continuación. Necesito hacer esto para un gran conjunto de datos con aproximadamente 180,000 filas.

| ID  | 2LE  | CHECK |
|-----|------|-------|
| 1   | PT   | FALSE |
| 2   | PT   | TRUE  |
| 3   | NULL | TRUE  |
| 4   | AT   | FALSE |

Esto podría ser más fácil fuera de QGIS. ¿En qué se almacenan los datos?
jpmc26

Respuestas:


7

También puedes filtrar tu capa.

Haga clic derecho sobre la capa, elija Filtery use "2LE" IS NOT NULL. Luego puede hacer clic derecho y Save Asotra capa vectorial.


7

Puede usar lo siguiente en la Consola Python . Seleccione su capa y use algo como:

layer = iface.activeLayer()
with edit(layer):
    listOfIds = [feat.id() for feat in layer.getFeatures() if feat['fieldName'] == NULL]
    layer.deleteFeatures(listOfIds)

5

Puede usar una capa virtual para mantener el conjunto de datos original y crear uno nuevo.

Si no hay geometría, debe marcar "Sin geometría" en la ventana "Crear una capa virtual".

Hay diferentes formas de verificar NULLo ``. Ver también SQLite select donde está vacío? - en desbordamiento de pila

Consultas de ejemplo. Tenía curiosidad y los probé con éxito (sin errores):

SELECT * FROM your_table WHERE "2LE" IS NOT NULL

>

SELECT * FROM your_table WHERE "2LE" != 'NULL'  #if `NULL` is a string:

>

SELECT * FROM your_table WHERE ifnull("2LE", '') != ''

>

SELECT * FROM your_table WHERE ifnull(length("2LE"), 0) != 0

>

SELECT * FROM your_table WHERE coalesce("2LE", '') != ''

Puede Save As(hacer clic con el botón derecho) la consulta (capa virtual) en un nuevo archivo vectorial.


5

En la tabla de atributos, use "Seleccionar por expresión" (no Filtro) e ingrese la expresión para que coincida con las características que desea eliminar, "2LE" IS NULLparece que lo hace. Luego, debe seleccionar todas esas funciones, y deben aparecer en amarillo.

Luego, con la edición activada (activada por el ícono de lápiz en la barra de herramientas o en cualquier otro lugar) presione Ctrl-X o use "Funciones de corte" en el menú "Editar". Las características seleccionadas deberían desaparecer.

Luego puede desactivar la edición (icono de lápiz) y se le pedirá que guarde los cambios si lo desea, lo que sobrescribirá los datos originales en el disco o la base de datos.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.