También existen otros enfoques:
Agregados disponibles para calcular.
No todos los agregados están disponibles para todos los tipos de campo.
Este enfoque está disponible desde QGIS 2.16.
layer = iface.activeLayer()
max_value = layer.aggregate(QgsAggregateCalculator.Max, "name_of_your_field")[0]
print(max_value)
Contiene métodos de utilidad para trabajar con QgsVectorLayers.
Este enfoque está disponible desde QGIS 3.
layer = iface.activeLayer()
max_value = max(QgsVectorLayerUtils.getValues(layer, "name_of_your_field")[0])
print(max_value)
Similar a la solución de @Joseph
layer = iface.activeLayer()
max_value = max([feat["name_of_your_field"] for feat in layer.getFeatures()])
print(max_value)
0 votos
¿y si quiero evaluar el máximo de cada valor único? Esto no funciona en absoluto... ¿alguien podría encontrar el error? gracias uniquevalues=layer.uniqueValues(index,limit=10000) for uv in uniquevalues: features = layer.getFeatures() for feat in features: values = [] attrs = feat.attributes() values.append(attrs[field]) if feat[field] == uv: maxarea = max(values)