Resumen
Calcula el resumen de estadísticas para los campos en una tabla.
Uso
La Tabla de salida constará de campos que contienen el resultado de la operación estadística.
Con esta herramienta están disponibles las siguientes operaciones estadísticas: suma, valor medio, máximo, mínimo, rango, desviación estándar, recuento, primero y último. La operación Mediana no está disponible.
Se creará un campo para cada tipo estadístico utilizando la siguiente convención de nomenclatura: SUM_<field>, MEAN_<field>, MIN_<field>, MAX_<field>, RANGE_<field>, STD_<field>, COUNT_<field>, FIRST_<field>, LAST_<field> (donde <field> es el nombre del campo de entrada para el que se calculan las estadísticas). El nombre del campo se trunca a 10 caracteres cuando la tabla de salida es una tabla dBASE.
Si se especifica un Campo de caso, las estadísticas se calcularán por separado para cada valor de atributo único. La Tabla de salida contendrá solo un registro si no se especifica ningún Campo de caso. Si se especifica alguno, habrá un registro para cada valor de Campo de caso.
Los valores nulos se excluyen de todos los cálculos estadísticos. Por ejemplo, el PROMEDIO de 10, 5 y NULL es 7,5 ([10+5]/2). La herramienta COUNT devuelve la cantidad de valores incluidos en el cálculo estadístico, que en este caso es 2.
El botón Agregar campo del parámetro Campos de estadísticas se utiliza solo en ModelBuilder. En ModelBuilder, donde no se ejecutó la herramienta anterior, o sus datos derivados no existen, es probable que el parámetro Campos de estadísticas no se complete con nombres de campos. El botón Agregar campo le permite agregar los campos esperados para que pueda completar el cuadro de diálogo Resumen de estadísticas y continuar creando el modelo.
Cuando se utilizan capas, solo se utilizan las entidades seleccionadas para calcular las estadísticas.
Sintaxis
Statistics_analysis (in_table, out_table, {statistics_fields}, {case_field})
Parámetro | Explicación | Tipo de datos |
in_table | La tabla de entrada que contiene los campos que se utilizarán para calcular las estadísticas. La entrada puede ser una tabla INFO, una tabla dBASE, una tabla OLE DB, una tabla VPF, o una clase de entidad. | Table View; Raster Layer |
out_table | La tabla de geodatabase o dBASE de salida que almacenará las estadísticas que se calcularon. | Table |
statistics_fields [[field, {statistic_type}],...] (Opcional) | El campo numérico que contiene los valores de atributos que se utilizaron para calcular la estadística especificada. Se pueden especificar varias estadísticas y combinaciones de campos. Los valores nulos se excluyen de todos los cálculos estadísticos. Los campos de atributo de texto se pueden resumir con las estadísticas FIRST y LAST. Los campos de atributo numérico se pueden resumir con cualquier estadística. Los tipos de estadísticas disponibles son los siguientes:
| Value Table |
case_field [case_field,...] (Opcional) | Los campos de la entrada se utilizan para calcular las estadísticas para cada valor de atributo único por separado (o para una combinación de valores de atributos cuando se especifican varios campos). | Field |
Muestra de código
Ejemplo de Estadísticas (ventana de Python)
El siguiente script de la ventana de Python muestra cómo utilizar la herramienta Statistics en el modo inmediato.
import arcpy
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
arcpy.Statistics_analysis("futrds", "C:/output/output.gdb/stats", [["Shape_Length", "SUM"]], "NM")
Ejemplo 2 de Estadísticas (secuencia de comandos independiente)
La siguiente secuencia de comandos independiente resume la vegetación según el área dentro de un radio de 150 pies de las carreteras principales.
# Description: Summarize the vegetation by area within 150 feet of major roads
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data"
# Set local variables
inRoads = "majorrds.shp"
outBuffer = "C:/output/output.gdb/buffer_out"
bufferDistance = "250 feet"
inVegetation = "Habitat_Analysis.gdb/vegtype"
outClip = "C:/output/output.gdb/clip_out"
joinField = "HOLLAND95"
joinTable = "c:/data/vegtable.dbf"
joinedField = "HABITAT"
outStatsTable = "C:/output/output.gdb/stats_out"
statsFields = [["Shape_Area", "SUM"]]
# Execute Buffer to get a buffer of major roads
arcpy.Buffer_analysis(inRoads, outBuffer, bufferDistance, dissolve_option="ALL")
# Execute Clip using the buffer output to get a clipped feature class
# of vegetation
arcpy.Clip_analysis(inVegetation, outBuffer, outClip)
# Execute JoinField to add the vegetation type
arcpy.JoinField_management(outClip, joinField, joinTable, joinField, joinedField)
# Execute Statistics to get the area of each vegetation type within
# the clipped buffer.
arcpy.Statistics_analysis(outClip, outStatsTable, statsFields, joinedField)
Ejemplo 3 de Estadísticas (secuencia de comandos independiente)
La siguiente secuencia de comandos independiente recorre los campos de atributos de un dataset y genera el parámetro statistics_fields de modo que se calcule la estadística de SUM para cada campo numérico.
# Description: Script that runs the Summary Statistic tool to calculate the
# Sum statistic for every numeric field based on a unique case field
# Import system modules
import arcpy
# Set environment settings
arcpy.env.workspace = "C:/data/f.gdb"
# Set local variables
intable = "intable"
outtable = "sumstats"
casefield = "Name"
stats = []
# Loop through all fields in the Input Table
for field in arcpy.ListFields(intable):
# Just find the fields that have a numeric type
if field.type in ("Double", "Integer", "Single", "SmallInteger"):
# Add the field name and Sum statistic type
# to the list of fields to summarize
stats.append([field.name, "Sum"])
# Correct formatting of stats [["Field1", "Sum"], ["Field2", "Sum"], ...]
# Run the Summary Statistics tool with the stats list
arcpy.Statistics_analysis(intable, outtable, stats, casefield)
Ejemplo 4 de Estadísticas (script independiente)
El siguiente script utiliza un pandas DataFrame para acceder a los resultados tabulados de la herramienta Statistics y mostrar estos resultados.
import arcpy
import pandas
import os
arcpy.env.overwriteOutput = True
in_table = r"d:\data\states.shp"
out_table = r"in_memory\stats_table"
stat_fields = [['POP1990', 'SUM'], ['POP1997', 'SUM']]
stats = arcpy.Statistics_analysis(in_table, out_table, stat_fields,
case_field='SUB_REGION')
# Get a list of field names to display
field_names = [i.name for i in arcpy.ListFields(out_table) if i.type != 'OID']
# Open a cursor to extract results from stats table
cursor = arcpy.da.SearchCursor(out_table, field_names)
# Create a pandas dataframe to display results
df = pandas.DataFrame(data=[row for row in cursor],
columns=field_names)
print(df)
Entornos
Información sobre licencias
- ArcGIS Desktop Basic: Sí
- ArcGIS Desktop Standard: Sí
- ArcGIS Desktop Advanced: Sí