arcpy-字段唯一值、重复值、最值、平均值、方差、标准差、中数、众数
插个广告,制作ArcGIS的Tool工具学习下面的教程就对了:
零基础学习Python制作ArcGIS自定义工具观看链接
《零基础学习Python制作ArcGIS自定义工具》课程简介
import arcpy
import numpy
from arcpy import da def GetFieldUniqueValue(inTable,inField):
value_list=[]
rows=arcpy.da.SearchCursor(inTable,inField)
for row in rows:
if row[0] not in value_list:
value_list.append( str(row[0]).decode('utf-8') )
del row
del rows
return value_list def GetDuplicateValue(inTable,inField):
dic={}
rows=arcpy.da.SearchCursor(inTable,inField)
for row in rows:
if row[0] in dic.keys():
dic[row[0]]=dic[row[0]]+1
else:
dic[row[0]]=1
del row
del rows
for key,value in dic.items():
if value==1:
del dic[key]
return dic def GetFieldMode(inTable,inField):
dic=GetDuplicateValue(inTable,inField)
lst=[value for key,value in dic.items()]
num=max(lst)
modeList=[]
for key,value in dic.items():
if value==num:
modeList.append(key)
return modeList def GetFieldValueList(inTable,inField):
value_list=[]
rows=arcpy.da.SearchCursor(inTable,inField)
for row in rows:
value_list.append(row[0])
del row
del rows
return value_list def main():
in_fc=arcpy.GetParameterAsText(0)
in_fld=arcpy.GetParameterAsText(1)
c=arcpy.GetParameterAsText(2)
if c== "Unique value":
uniqueValue=GetFieldUniqueValue(in_fc,in_fld)
arcpy.AddMessage("Unique Value:")
for i in uniqueValue:
arcpy.AddMessage(str(i))
if c=="Duplicate value":
duplicateValue= GetDuplicateValue(in_fc,in_fld)
arcpy.AddMessage("Duplicate Value,Count:")
for key,value in duplicateValue.items():
arcpy.AddMessage("{0},{1}".format(key,value))
if c=="Max/Min/Sum/Average etc.":
valueList=GetFieldValueList(in_fc,in_fld)
arcpy.AddMessage("Field Name:{}".format(in_fld))
arcpy.AddMessage("Max:{}".format(max(valueList)))
arcpy.AddMessage("Min:{}".format(min(valueList)))
arcpy.AddMessage("Sum:{}".format(sum(valueList)))
arcpy.AddMessage("Average:{}".format(numpy.mean(valueList)))
arcpy.AddMessage("Median:{}".format(numpy.median(valueList)))
arcpy.AddMessage("Mode:{}".format(GetFieldMode(in_fc,in_fld)))
arcpy.AddMessage("Variance:{}".format(numpy.var(valueList)))
arcpy.AddMessage("Standard Deviation:{}".format(numpy.std(valueList)))
arcpy-字段唯一值、重复值、最值、平均值、方差、标准差、中数、众数的更多相关文章
- 获取字段唯一值工具- -ArcPy和Python案例学习笔记
获取字段唯一值工具- -ArcPy和Python案例学习笔记 目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...
- arcgis python获得字段唯一值
arcgis python获得字段唯一值 # Import native arcgisscripting moduleimport arcgisscripting, sys# Create the g ...
- Mysql查询某字段值重复的数据
查询user表中,user_name字段值重复的数据及重复次数 select user_name,count(*) as count from user group by user_name havi ...
- MySQL 查询表中某字段值重复的数据
MySQL中,查询表(dat_bill_2018_11)中字段(product_id)值重复的记录: ; 说明:先用GROUP BY 对 product_id 进行分组,同时使用COUNT(*)进行统 ...
- mysql 允许在唯一索引的字段中出现多个null值
线上问题:org.springframework.dao.DuplicateKeyException: PreparedStatementCallback; SQL [update fl_table ...
- SQL0803问题 键值重复
工作中遇到SQL0803问题 使用DB2AS400数据库 报数据库键值重复错误 经同事分析为索引的起始值与当前已有记录的最大索引值不匹配造成的,验证过程如下: 1.SELECT max(被索引字段) ...
- SQL语句增删改字段、表、修改默认值
收集转载: 1.修改字段,默认值 .修改字段默认值 alter table 表名 drop constraint 约束名字 ------说明:删除表的字段的原有约束 alter table 表名 ad ...
- Oracle-一张表中增加计算某列值重复的次数列,并且把表中其他列也显示出来,或者在显示过程中做一些过滤
总结: 1.计算某列值(数值or字符串)重复的次数 select 列1,count( 列1 or *) count1 from table1 group by 列1 输出的表为:第一列是保留唯一值的 ...
- select初始化添加option,通过标签给出回显值,由于回显值和初始化值option中有一个值重复,去重等问题!
第一张图片: 第二张图片 /** *该方法是为了去重,所谓去重就是 因为回显给select附上了值并设置为selected选中状态,而在我们初始化所有的select添加option元素中于回显的值重复 ...
- 表A中有两个表示时间的字段A,B;如果B的值大于A的值,则把B的值更新为A的值
sql语句:表A中有两个表示时间的字段A,B:如果B的值大于A的值,则把B的值更新为A的值 update 表名 set B=A where B>A
随机推荐
- ==和equal的区别
1.“==”运算符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个引用变量是否相等,只能用==操作符. 如果一个变量指向的数据是对 ...
- Goals ? Ideals ?
Why is it important to set goals ? Because goal can help you do , be , and experience anything you w ...
- hashtable C++实现
模仿stl,实现了开链法形式的hashtable.纯属练手,仅仅实现其基本功能,不当之处还望指正.本文为实现独立的空间配置器. #include<iostream> #include< ...
- 44.和为S的两个数字
题目描述: 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 思路分析: 数组是递增排序的,我们先将数组遍历一遍 ...
- 2018-2-13-win10-UWP-单元测试
title author date CreateTime categories win10 UWP 单元测试 lindexi 2018-2-13 17:23:3 +0800 2018-2-13 17: ...
- TCP/UDP Linux网络编程详解
本文主要记录TCP/UDP网络编程的基础知识,采用TCP/UDP实现宿主机和目标机之间的网络通信. 内容目录 1. 目标2.Linux网络编程基础2.1 嵌套字2.2 端口2.3 网络地址2.3.1 ...
- 【虚拟机】:"该虚拟机似乎正在使用中。 如果该虚拟机未在使用,请按“获取所有权(T)”按钮获取它的所有权。否则,请按“取消(C)”按钮以防损坏。"
1.可能是由于上次使用虚拟机,没有正常关闭出现了这种情况,于是把问题复制粘贴搜了一下. 2.出现了如下可行的解决方法:把后缀名为.vmdk.lck的都删除掉. 3.然后再打开虚拟机就可以了.
- Math.random()详解
Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码.例如:double a=Math.random()*(3-1)+1,设置 ...
- [REPRINT] Java 101: Classes and objects in Java
http://www.javaworld.com/article/2979739/learn-java/java-101-classes-and-objects-in-java.html?page=3 ...
- numpy.unique
Find the unique elements of an array. Returns the sorted unique elements of an array. There are thre ...