Saltar al contenido

¿Cómo contar las ocurrencias de un campo agrupado por valores de otro?

Te doy la bienvenida a nuestra comunidad, ahora vas a hallar la respuesta de lo que necesitas.

Dos operaciones de “resumir” lo harán. Esta es una operación básica que no requiere licencias adicionales.

Primero calcule un campo que concatene Field1 y Field2. (Si su tabla no es editable o no debe modificarse, realice estas operaciones en una copia). Es una buena idea delimitar la concatenación; aquí he usado “|” como delimitador.

Field 1    Field 2    Concatenation
Apple      Green      Apple|Green
Apple      Red        Apple|Red
Apple      Red        Apple|Red
Citrus     Yellow     Citrus|Yellow
Citrus     Green      Citrus|Green
Citrus     Orange     Citrus|Orange
Citrus     Orange     Citrus|Orange

el resumen de la Concatenation campo, conservando la primera aparición de Field1, se vera como

Concatenation  Field1  Count
Apple|Green    Apple   1
Apple|Red      Apple   2
Citrus|Yellow  Citrus  1
Citrus|Green   Citrus  1
Citrus|Orange  Citrus  2

Finalmente, el resumen de Field1 obtiene lo que desea:

Field1 Count
Apple  2
Citrus 3

Probablemente desee utilizar la herramienta “Resumen de estadísticas” (licencia ArcView/Basic y superior)

Calcula las estadísticas de resumen de los campos de una tabla.

o herramienta “Frecuencia” (se requiere licencia ArcInfo/Advanced)

Lee una tabla y un conjunto de campos y crea una nueva tabla que contiene valores de campo únicos y el número de ocurrencias de cada valor de campo único.

Luego, puede volver a unir esto a su tabla de origen y calcular un campo (si es necesario), o simplemente usar la herramienta Unir campo (el ejemplo en la Ayuda muestra el flujo de trabajo exacto del que está hablando).

Une el contenido de una tabla a otra tabla basándose en un común
attribute campo.

Puede hacer esto usando un diccionario para realizar un seguimiento de los valores en el campo 1 junto con la cantidad de combinaciones que tiene cada valor con el campo 2.

import arcpy,csv

fields = ['Field 1','Field 2']
with arcpy.da.SearchCursor(table,fields) as rows:
    with open('output_table.csv','wb') as f_out:
        dw = csv.DictWriter(f_out,fields)
        dw.writeheader()
        d = 
        for row in rows:
            field1_val = row[0]
            field2_val = row[1]
            if field1_val not in d.keys():
                # If this is the first time encountering the variable, add it to the dictionary and create
                # a new list with the associated value in field 2 as the first item in said list
                d[field1_val] = [field2_val]
            else:
                # If the variable has already been encountered, try adding the value in field 2 to the list
                # unless it is already in there
                if field2_val not in d[field1_val]:
                    d[field1_val].append(field2_val)
        # Now that we have assembled a dictionary containing all variables in field 1 and lists of the associated
        # values found in field 2, we can iterate through the variable/list pairs and write to a csv file
        for k,v in d.iteritems():
            dw.writerow(dict(k,len(v)))

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *