<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Please Help! Calculate Median Value in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153276#M11859</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No problem, glad to see this is still getting used!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 06 May 2015 16:54:00 GMT</pubDate>
    <dc:creator>Anonymous User</dc:creator>
    <dc:date>2015-05-06T16:54:00Z</dc:date>
    <item>
      <title>Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153268#M11851</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for your time in advance. I tried to update the script (downloaded from &lt;/SPAN&gt;&lt;A href="http://arcscripts.esri.com/details.asp?dbid=16796" rel="nofollow noopener noreferrer" target="_blank"&gt;Calculate Median Value&lt;/A&gt;&lt;SPAN&gt;) from v9.3 to v10.1 and ran the script in the tool. However, V10.1 does not work (v9.3 works). The attached file would show the error message. I also listed my original v10.1 python code. I tried to add the filed_name in arcpy.da.SearchCursor(inputTable, readField). However, it still failed to work. Please let me know if there is any problem with my v10.1 python code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hank&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;v9.3 version python code from Corey Denninger&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
Script created by Chris Snyder; modified by C. Denninger
# Script resulted from ESRI Forum posts dated 04FEB2010.

# This script is used in a script tool within ArcGIS and calculates
#..the median value of one entire field and posts that single median
#...value to every row in one other entire field.

import sys, arcgisscripting
gp = arcgisscripting.create(9.3)


inputTable = gp.GetParameterAsText(0)
readField = gp.GetParameterAsText(1) #this needs to be a numeric field
writeField = gp.GetParameterAsText(2) #this needs to be a double or float


valueList = []
searchRows = gp.searchcursor(inputTable)
searchRow = searchRows.next()
while searchRow:
&amp;nbsp;&amp;nbsp; searchRowValue = searchRow.getvalue(readField)
&amp;nbsp;&amp;nbsp; if searchRowValue == None:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pass #don't add a null value to the list!
&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; valueList.append(searchRowValue)
&amp;nbsp;&amp;nbsp; searchRow = searchRows.next()
del searchRow
del searchRows


valueList.sort()
listLength = len(valueList)
if listLength == 0:
&amp;nbsp;&amp;nbsp; print "Every value was null! Exiting script..."; sys.exit()
elif listLength % 2 == 0: #even, so get the mean of the 2 center values
&amp;nbsp;&amp;nbsp; medianValue = (valueList[listLength / 2] + valueList[listLength / 2 - 1]) / 2.0
else: #odd, so it's easy!
&amp;nbsp;&amp;nbsp; medianValue = valueList[listLength / 2]
updateRows = gp.updatecursor(inputTable)
updateRow = updateRows.next()
while updateRow:
&amp;nbsp;&amp;nbsp; updateRow.setvalue(writeField, medianValue)
&amp;nbsp;&amp;nbsp; updateRows.UpdateRow(updateRow)
&amp;nbsp;&amp;nbsp; updateRow = updateRows.next()
del updateRow
del updateRows



&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;V10.1 python code&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
import arcpy, sys, os

inputTable = arcpy.GetParameterAsText(0)
readField = arcpy.GetParameterAsText(1)
writeField = arcpy.GetParameterAsText(2) 

valueList = []
searchRows = arcpy.da.SearchCursor(inputTable)
searchRow = searchRows.next()
while searchRow:
&amp;nbsp;&amp;nbsp;&amp;nbsp; searchRowValue = searchRow.getValue(readField)
&amp;nbsp;&amp;nbsp;&amp;nbsp; if searchRowValue == None:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pass #don't add a null value to the list!
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; valueList.append(searchRowValue)
&amp;nbsp;&amp;nbsp;&amp;nbsp; searchRow = searchRows.next()
del seachRow
del searchRows

valueList.sort
listLength = len(valueList)
if&amp;nbsp; listLength == 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Every value was null! Exiting script..."; sys.exit()
elif listLength % 2 == 0: #even, so get the mean of the 2 center values
&amp;nbsp;&amp;nbsp;&amp;nbsp; medianValue = (valueList[listLength / 2] + valueList[listLength / 2 - 1]) / 2.0

else:
&amp;nbsp;&amp;nbsp;&amp;nbsp; medianValue = valueList[listLength / 2]
updateRows = arcpy.da.UpdateCursor(inputTable)
updateRow = updateRows.next()
while updateRow:
&amp;nbsp;&amp;nbsp; updateRow.setvalue(writeField, medianValue)
&amp;nbsp;&amp;nbsp; updateRows.UpdateRow(updateRow)
&amp;nbsp;&amp;nbsp; updateRow = updateRows.next()
del updateRow
del updateRows
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:12:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153268#M11851</guid>
      <dc:creator>Chang-HengYang</dc:creator>
      <dc:date>2021-12-11T08:12:34Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153269#M11852</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;With arcpy.da, search cursors work a bit differently. You need to explicitly say which fields you want to be in your search cursor (&lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#//018w00000011000000" rel="nofollow noopener noreferrer" target="_blank"&gt;arcpy.da.SearchCursor Help&lt;/A&gt;&lt;SPAN&gt;). This must be a list of fields, even though in your case you have just one. You then access the values in the row in the same way that you would pull items from a list.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So for your example, you would want something like this with the search cursor:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
with arcpy.da.SearchCursor(inputTable, &lt;STRONG&gt;[readField]&lt;/STRONG&gt;) as searchRows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; for searchRow in searchRows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if searchRow[0] != None:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; valueList.append(searchRow[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del searchRow
del searchRows
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The update cursor would work similarly (&lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#/UpdateCursor/018w00000014000000/" rel="nofollow noopener noreferrer" target="_blank"&gt;arcpy.da.UpdateCursor Help&lt;/A&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
with arcpy.da.UpdateCursor(inputTable, &lt;STRONG&gt;[writeField]&lt;/STRONG&gt;) as updateRows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in updateRows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[0] = medianValue
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; updateRows.updateRow(row)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; del row
del updateRows
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Because you are iterating over lists, this should also run faster than the old cursors did.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:12:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153269#M11852</guid>
      <dc:creator>DouglasSands</dc:creator>
      <dc:date>2021-12-11T08:12:37Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153270#M11853</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Yes, just like the error says, on line 8... in the da.searchcursor, you have to enter a 2nd required parameter for fields.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'd recommend you try the da cursor, but if you just wanted to make this run for now...there's still the 'regular' cursor, probably for backward compatiblity support, just take out the .da:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;searchRows = arcpy.SearchCursor(inputTable)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 11 Oct 2013 20:22:39 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153270#M11853</guid>
      <dc:creator>T__WayneWhitley</dc:creator>
      <dc:date>2013-10-11T20:22:39Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153271#M11854</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I wrote a tool to do this a while ago, this has always worked for me:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
'''
Written By Caleb Mackey
4/17/2013

Calculates Median Statistics
'''

import arcpy, os, sys, traceback

# env settings
arcpy.env.overwriteOutput = True
arcpy.env.qualifiedFieldNames = False

def GetMedian(in_list):
&amp;nbsp;&amp;nbsp;&amp;nbsp; sorted_list = sorted(in_list)
&amp;nbsp;&amp;nbsp;&amp;nbsp; median = int(round(len(sorted_list) / 2))
&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(sorted_list)%2==0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; med_val = float(sorted_list[median-1]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + sorted_list[median]) / 2
&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; med_val = sorted_list[median]
&amp;nbsp;&amp;nbsp;&amp;nbsp; return med_val


def GetMedianValues(source_fc, new_table, case_field, value_field):
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; ''' Generates a table with Median Values, summarized by case_field. If the
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; goal is to get the median for the entire table, use a case field that has
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the same value for all records.

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; source_fc - input feature class to compute median statistics for
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_table - output table
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case_field - similar to dissolve field, computes stats based on unique values in this field
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value_field - field that contains the actual values for statistics; must be numeric
&amp;nbsp;&amp;nbsp;&amp;nbsp; '''
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get unique value list for query
&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'starting cursor'
&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(source_fc, [case_field]) as rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; un_vals = list(set(r[0] for r in rows))

&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr = arcpy.MakeFeatureLayer_management(source_fc,'source_layer')
&amp;nbsp;&amp;nbsp;&amp;nbsp; values = {}

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get Median UseValue for each station name
&amp;nbsp;&amp;nbsp;&amp;nbsp; for st in un_vals:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query = '"{0}" = \'{1}\''.format(case_field, st)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SelectLayerByAttribute_management(lyr, 'NEW_SELECTION', query)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use_vals = []
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(lyr, [value_field]) as rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if row[0] != None:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use_vals.append(row[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(use_vals) &amp;gt; 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; median = GetMedian(use_vals)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values[st] = [median, len(use_vals)]


&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create new Summary Statistics table with median
&amp;nbsp;&amp;nbsp;&amp;nbsp; #
&amp;nbsp;&amp;nbsp;&amp;nbsp; if arcpy.Exists(new_table):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(new_table)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateTable_management(os.path.split(new_table)[0],os.path.basename(new_table))

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get field names and types
&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in arcpy.ListFields(source_fc):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if field.name in [case_field, value_field]:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftype = field.type
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = field.name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length = field.length
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pres = field.precision
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scale = field.scale
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if name == value_field:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if new_table.endswith('.dbf'):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = 'MED_' + value_field[:6]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = 'MED_' + value_field
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value_field2 = name
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(new_table,name,ftype,pres,scale,length)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # Add frequency field
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(new_table,'FREQUENCY','LONG')

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Insert rows
&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.InsertCursor(new_table, [case_field, value_field2, 'FREQUENCY']) as rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for k,v in sorted(values.iteritems()):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.insertRow((k, v[0], v[1]))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; # report results
&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Created %s' %os.path.basename(new_table)
&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage('Created %s' %os.path.basename(new_table))

&amp;nbsp;&amp;nbsp;&amp;nbsp; # .dbf's are automatically given a 'Field1' field...Clean this up
&amp;nbsp;&amp;nbsp;&amp;nbsp; try:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if new_table.endswith('.dbf'):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DeleteField_management(new_table, 'Field1')
&amp;nbsp;&amp;nbsp;&amp;nbsp; except:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pass
&amp;nbsp;&amp;nbsp;&amp;nbsp; print 'Done'


if __name__ == '__main__':

##&amp;nbsp;&amp;nbsp;&amp;nbsp; # testing
##&amp;nbsp;&amp;nbsp;&amp;nbsp; source_fc = r'C:\Testing\Test.gdb\CSR_by_TWP'
####&amp;nbsp;&amp;nbsp;&amp;nbsp; new_table = r'C:\Testing\Test.gdb\Median_CSR' #gdb test
##&amp;nbsp;&amp;nbsp;&amp;nbsp; new_table = r'C:\Testing\Median_CSR.dbf'&amp;nbsp; #dbf test
##&amp;nbsp;&amp;nbsp;&amp;nbsp; case_field = 'NAME'
##&amp;nbsp;&amp;nbsp;&amp;nbsp; value_field = 'AVE_CSR'

&amp;nbsp;&amp;nbsp;&amp;nbsp; # Script tool params
&amp;nbsp;&amp;nbsp;&amp;nbsp; source_fc = arcpy.GetParameterAsText(0)
&amp;nbsp;&amp;nbsp;&amp;nbsp; new_table = arcpy.GetParameterAsText(1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; case_field = arcpy.GetParameterAsText(2)
&amp;nbsp;&amp;nbsp;&amp;nbsp; value_field = arcpy.GetParameterAsText(3)

&amp;nbsp;&amp;nbsp;&amp;nbsp; GetMedianValues(source_fc, new_table, case_field, value_field)

&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope this helps&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;EDIT: I should mention this is a 10.1 + version.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:12:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153271#M11854</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2021-12-11T08:12:40Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153272#M11855</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;One more thing, you can replace all of this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
valueList.sort
listLength = len(valueList)
if&amp;nbsp; listLength == 0:
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Every value was null! Exiting script..."; sys.exit()
elif listLength % 2 == 0: #even, so get the mean of the 2 center values
&amp;nbsp;&amp;nbsp;&amp;nbsp; medianValue = (valueList[listLength / 2] + valueList[listLength / 2 - 1]) / 2.0

else:
&amp;nbsp;&amp;nbsp;&amp;nbsp; medianValue = valueList[listLength / 2]
&lt;/PRE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;With:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
medianValue = numpy.median(valueList)
&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;By importing numpy at the beginning of your script. The list also does not need to be sorted and you don't have to put in the logic to handle all of the list length issues. If there is an empty list, numpy will return "nan" (&lt;/SPAN&gt;&lt;STRONG&gt;n&lt;/STRONG&gt;&lt;SPAN&gt;ot &lt;/SPAN&gt;&lt;STRONG&gt;a&lt;/STRONG&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;STRONG&gt;n&lt;/STRONG&gt;&lt;SPAN&gt;umber). After calculating this, you can use numpy.isnan() to test and exit:&lt;/SPAN&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;
if numpy.isnan(medianValue):
&amp;nbsp;&amp;nbsp;&amp;nbsp; print "Every value was null! Exiting script..."
&amp;nbsp;&amp;nbsp;&amp;nbsp; sys.exit()
&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:12:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153272#M11855</guid>
      <dc:creator>DouglasSands</dc:creator>
      <dc:date>2021-12-11T08:12:43Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153273#M11856</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for your useful information. I figured out this question with your all helps.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hank&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 14 Oct 2013 15:14:21 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153273#M11856</guid>
      <dc:creator>Chang-HengYang</dc:creator>
      <dc:date>2013-10-14T15:14:21Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153274#M11857</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thanks for posting this, very helpful! I have updated it to Python 3.x, which is what ArcGIS Pro ships with:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;''' &lt;/P&gt;&lt;P&gt;Written By Caleb Mackey &lt;/P&gt;&lt;P&gt;4/17/2013 &lt;/P&gt;&lt;P&gt;Updated to Python 3.x (ArcGIS Pro 1.0) by Katja Krivoruchko&lt;/P&gt;&lt;P&gt;4/16/2015&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Calculates Median Statistic &lt;/P&gt;&lt;P&gt;''' &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;import arcpy, os, sys, traceback &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;# env settings &lt;/P&gt;&lt;P&gt;arcpy.env.overwriteOutput = True &lt;/P&gt;&lt;P&gt;arcpy.env.qualifiedFieldNames = False &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;def GetMedian(in_list): &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; sorted_list = sorted(in_list) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; median = int(round(len(sorted_list) / 2)) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(sorted_list)%2==0: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; med_val = float(sorted_list[median-1] &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; + sorted_list[median]) / 2 &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; else: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; med_val = sorted_list[median] &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; return med_val &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;def GetMedianValues(source_fc, new_table, case_field, value_field): &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ''' Generates a table with Median Values, summarized by case_field. If the &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; goal is to get the median for the entire table, use a case field that has &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the same value for all records. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; source_fc - input feature class to compute median statistics for &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_table - output table &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case_field - similar to dissolve field, computes stats based on unique values in this field &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value_field - field that contains the actual values for statistics; must be numeric &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ''' &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get unique value list for query &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(source_fc, [case_field]) as rows: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; un_vals = list(set(r[0] for r in rows)) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lyr = arcpy.MakeFeatureLayer_management(source_fc,'source_layer') &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; values = {} &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get Median UseValue for each station name &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for st in un_vals: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; query = '"{0}" = \'{1}\''.format(case_field, st) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.SelectLayerByAttribute_management(lyr, 'NEW_SELECTION', query) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use_vals = [] &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(lyr, [value_field]) as rows: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if row[0] != None: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; use_vals.append(row[0]) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if len(use_vals) &amp;gt; 0: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; median = GetMedian(use_vals) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; values[st] = [median, len(use_vals)] &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Create new Summary Statistics table with median &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if arcpy.Exists(new_table): &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.Delete_management(new_table) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.CreateTable_management(os.path.split(new_table)[0],os.path.basename(new_table)) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Get field names and types &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in arcpy.ListFields(source_fc): &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if field.name in [case_field, value_field]: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ftype = field.type &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = field.name &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; length = field.length &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pres = field.precision &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scale = field.scale &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if name == value_field: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if new_table.endswith('.dbf'): &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = 'MED_' + value_field[:6] &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = 'MED_' + value_field &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value_field2 = name &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(new_table,name,ftype,pres,scale,length) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Add frequency field &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddField_management(new_table,'FREQUENCY','LONG') &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Insert rows &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.InsertCursor(new_table, [case_field, value_field2, 'FREQUENCY']) as rows: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for k,v in sorted(values.items()): &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.insertRow((k, v[0], v[1])) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # report results &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; print ('Created %s' %os.path.basename(new_table)&amp;nbsp; )&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.AddMessage('Created %s' %os.path.basename(new_table)) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # .dbf's are automatically given a 'Field1' field...Clean this up &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; try: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if new_table.endswith('.dbf'): &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; arcpy.DeleteField_management(new_table, 'Field1') &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; except: &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pass &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; #print 'Done' &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;if __name__ == '__main__': &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; # Script tool params &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; source_fc = arcpy.GetParameterAsText(0) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; new_table = arcpy.GetParameterAsText(1) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; case_field = arcpy.GetParameterAsText(2) &lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; value_field = arcpy.GetParameterAsText(3) &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; GetMedianValues(source_fc, new_table, case_field, value_field) &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 17 Apr 2015 15:54:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153274#M11857</guid>
      <dc:creator>KatjaKrivoruchko</dc:creator>
      <dc:date>2015-04-17T15:54:17Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153275#M11858</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Thank you Caleb...worked like a charm!&amp;nbsp; I naively thought that 'median' was just going to be a simple calculation function in the Field Calculator...thank god for your script! &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 May 2015 16:45:29 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153275#M11858</guid>
      <dc:creator>DanHoffman1</dc:creator>
      <dc:date>2015-05-06T16:45:29Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153276#M11859</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;No problem, glad to see this is still getting used!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 May 2015 16:54:00 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153276#M11859</guid>
      <dc:creator>Anonymous User</dc:creator>
      <dc:date>2015-05-06T16:54:00Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153277#M11860</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Once numeric values are obtained from a field, via whatever means, medians are relatively easy to determine using numpy even if the field contains NaN's&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&amp;gt;&amp;gt;&amp;gt; import numpy as np
&amp;gt;&amp;gt;&amp;gt; a = np.array([1,2,np.NaN,3.,4,np.NaN],dtype='float64')
&amp;gt;&amp;gt;&amp;gt; np.median(a)
3.5
&amp;gt;&amp;gt;&amp;gt; np.nanmedian(a)
2.5
&amp;gt;&amp;gt;&amp;gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 08:12:46 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153277#M11860</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2021-12-11T08:12:46Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153278#M11861</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Don't forget to &lt;A href="https://community.esri.com/docs/DOC-2159"&gt;Mark a reply as the Correct Answer&lt;/A&gt; &lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 May 2015 20:26:50 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153278#M11861</guid>
      <dc:creator>Sol_Wuensch</dc:creator>
      <dc:date>2015-05-06T20:26:50Z</dc:date>
    </item>
    <item>
      <title>Re: Please Help! Calculate Median Value</title>
      <link>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153279#M11862</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;that's why I love numpy and panda&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 30 Nov 2016 23:24:32 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/please-help-calculate-median-value/m-p/153279#M11862</guid>
      <dc:creator>SamanehHejazi1</dc:creator>
      <dc:date>2016-11-30T23:24:32Z</dc:date>
    </item>
  </channel>
</rss>

