Excluir linhas nas quais a célula de uma coluna específica está vazia

8

Existe uma maneira de excluir todas as linhas no QGIS nas quais a célula de uma coluna específica na tabela de atributos está vazia? por exemplo, linha três na tabela abaixo. Eu preciso fazer isso para um grande conjunto de dados com cerca de 180.000 linhas.

| ID  | 2LE  | CHECK |
|-----|------|-------|
| 1   | PT   | FALSE |
| 2   | PT   | TRUE  |
| 3   | NULL | TRUE  |
| 4   | AT   | FALSE |
Stücke
fonte
Isso pode ser mais fácil fora do QGIS. Quais são os dados armazenados?
jpmc26

Respostas:

7

Você também pode filtrar sua camada.

Clique com o botão direito na camada, escolha Filtere use "2LE" IS NOT NULL. Depois, você pode clicar com o botão direito e em Save Asoutra camada vetorial.

Stefan
fonte
7

Você pode usar o seguinte no console Python . Selecione sua camada e use algo como:

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

Você pode usar uma camada virtual, para manter o conjunto de dados original e criar um novo.

Se não houver geometria, marque "Sem geometria" na janela "Criar uma camada virtual".

Existem diferentes maneiras de verificar NULLou ``. Veja também SQLite selecione onde está vazio? - no estouro de pilha

Consultas de exemplo. Fiquei curioso e testei todos eles com sucesso (sem erros):

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", '') != ''

Você pode Save As(clicar com o botão direito) a consulta (camada virtual) para um novo arquivo vetorial.

Stefan
fonte
5

Na tabela de atributos, use "Selecionar por expressão" (não Filtro) e insira a expressão para corresponder aos recursos que você deseja excluir - "2LE" IS NULLparece fazê-lo. Em seguida, você deve selecionar todos esses recursos e eles devem aparecer em amarelo.

Em seguida, com a edição ativada (alternada pelo ícone de lápis na barra de ferramentas ou em outro local), pressione Ctrl-X ou use "Recursos de corte" no menu "Editar". Os recursos selecionados devem desaparecer.

Em seguida, você pode desativar a edição (ícone de lápis) e será solicitado a salvar as alterações, se desejar, que substituirão os dados originais no disco ou no banco de dados.

Spacedman
fonte