Résumé
Calcule les résumés statistiques des champs d’une table.
Utilisation
La Table en sortie est constituée de champs contenant le résultat de l'opération statistique.
Cet outil permet les opérations statistiques suivantes : Somme, Moyenne, Maximum, Minimum, Plage, Écart type, Total, Premier, Dernier, Médiane Variance et Unique.
Un champ de dénomination sera créé pour chaque type de statistique, selon la convention suivante : SUM_<field>, MEAN_<field>, MIN_<field>, MAX_<field>, RANGE_<field>, STD_<field>, COUNT_<field>, FIRST_<field>, LAST_<field>, MEDIAN_<field>, VARIANCE_<field> et UNIQUE_<field> (où <field> représente le nom du champ de saisie auquel correspond le calcul statistique). Le nom de champ est tronqué à 10 caractères lorsque la table en sortie est une table dBASE.
Si un Champ de récapitulation est spécifié, les statistiques sont calculées séparément pour chaque valeur attributaire unique. Si aucun Champ de récapitulation n'est spécifié, la Table en sortie contient un seul enregistrement. S'il est spécifié, un enregistrement est créé pour chaque valeur du Champ de récapitulation.
Les valeurs nulles sont exclues de tous les calculs statistiques. Par exemple, la moyenne de 10, 5 et d’une valeur nulle est 7,5 ((10 + 5)/2).
Lors de l’utilisation de couches, seules les entités actuellement sélectionnées permettent de calculer des statistiques.
Syntaxe
arcpy.analysis.Statistics(in_table, out_table, {statistics_fields}, {case_field})
Paramètre | Explication | Type de données |
in_table | Table en entrée contenant les champs utilisés pour le calcul des statistiques. | Table View; Raster Layer |
out_table | Table en sortie devant stocker les statistiques calculées. | Table |
statistics_fields [[field, {statistic_type}],...] (Facultatif) | Spécifie le champ numérique contenant les valeurs attributaires permettant de calculer les statistiques indiquées. Vous pouvez spécifier plusieurs combinaisons de statistiques et de champs. Les valeurs nulles sont exclues de tous les calculs statistiques. Les champs attributaires textuels peuvent être récapitulés à l’aide de la première et de la dernière statistique. Les champs attributaires numériques peuvent être récapitulés à l’aide de toutes les statistiques. Types de statistiques disponibles :
| Value Table |
case_field [case_field,...] (Facultatif) | Champ(s) en entrée utilisé(s) pour calculer des statistiques distinctes pour chaque valeur attributaire unique (ou pour chaque combinaison de valeurs attributaires, si plusieurs champs sont spécifiés). | Field |
Exemple de code
Le script de fenêtre Python suivant montre comment utiliser l'outil Statistics en mode immédiat.
import arcpy
arcpy.env.workspace = "C:/data/Habitat_Analysis.gdb"
arcpy.Statistics_analysis("futrds", "C:/output/output.gdb/stats", [["Shape_Length", "SUM"]], "NM")
Le script autonome ci-dessous résume la végétation par surface à moins de 150 pieds des routes 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)
Le script autonome suivant parcourt les champs attributaires d’un jeu de données et construit le paramètre statistics_fields de façon que la statistique SUM soit calculée pour chaque champ numérique.
# 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)
Le script suivant utilise un pandas DataFrame pour permettre d'accéder et afficher les résultats tabulaires de l'outil Statistics.
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)
Environnements
Informations de licence
- Basic: Oui
- Standard: Oui
- Advanced: Oui
Rubriques connexes
Vous avez un commentaire à formuler concernant cette rubrique ?