banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Mon 14 October 2019 13:08

Njoy
Participant actif
Lieu: Lyon
Date d'inscription: 29 Nov 2018
Messages: 89

QGIS: Compter les doublons sur une colonne d'un Shape

Bonjour,

Sur mon shape  "shape.shp" j'aimerais compter les valeurs textes en doublon sur ma colonne "field1"

Puis retourner ces valeurs en tant que string.

Si quelqu'un saurait m'aider ?

Merci d'avance, NJOY

Hors ligne

 

#2 Tue 15 October 2019 09:19

EnilecT
Participant occasionnel
Date d'inscription: 11 Mar 2018
Messages: 24

Re: QGIS: Compter les doublons sur une colonne d'un Shape

Bonjour,
Pour compter les doublons j'aurais utilisé une requête SQL

Code:

select field1, count(field1)
from shape
group by field1
having count(field1) > 1

?

Hors ligne

 

#3 Wed 16 October 2019 10:42

Njoy
Participant actif
Lieu: Lyon
Date d'inscription: 29 Nov 2018
Messages: 89

Re: QGIS: Compter les doublons sur une colonne d'un Shape

Bonjour,

Merci pour le retour, je voulais faire cela en PYTHON.

Je vais voir si je peux executer une requete SQL via du Pyhton sur un shape.

Cordialement,
NJOY

Hors ligne

 

#4 Thu 17 October 2019 10:38

Njoy
Participant actif
Lieu: Lyon
Date d'inscription: 29 Nov 2018
Messages: 89

Re: QGIS: Compter les doublons sur une colonne d'un Shape

Bonjour,

Résolu, voici une solution sans utiliser de SQL en PYQGIS

Code:

        i = 0 #compteur si doublon
        i2 = 0 #compteur nombre doublon
        featid = '' #liste des erreurs
        
        for feat in features:
            i = 0
            attrs = feat.attributes()
            query2 = '"cb_code" = \'' + str(attrs[int(1)]) + '\''
            features2 = vl.getFeatures(QgsFeatureRequest().setFilterExpression(query2))
            for feat2 in features2:
                i = i + 1
                if i > 1:
                    featid = str(featid) + str(' - ') + str(attrs[int(1)])
                    i2 = i2 + 1

Hors ligne

 

Pied de page des forums

Powered by FluxBB