<?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: Updating fields using python in ArcGIS 10 in Geoprocessing Questions</title>
    <link>https://community.esri.com/t5/geoprocessing-questions/updating-fields-using-python-in-arcgis-10/m-p/399477#M13568</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks, Ben.&amp;nbsp; That's what I ended up doing.&amp;nbsp; Here's the code in case anyone's interested.&amp;nbsp; I'm sure someone else out there could do it in less lines of code, but it works nonetheless.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import os
from operator import itemgetter
import arcpy

inspace = "C:/Data/export.gdb"
shapefile = inspace + os.sep + "classification_2011_1028"

fields = arcpy.ListFields(shapefile, "M*") # The "nonsense" name of the 10 fields all began with 'M'
newfields = ["First", "Second", "Third"] # The empty fields where the top three numbers would go

uCursor = arcpy.UpdateCursor(shapefile)

for row in uCursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp; fuzzy = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; topthree = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; x = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in fields:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = field.aliasName 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.getValue(field.name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fuzzy.append([name,value])
&amp;nbsp;&amp;nbsp;&amp;nbsp; fuzzy.sort(key=itemgetter(1),reverse=True)
&amp;nbsp;&amp;nbsp;&amp;nbsp; for f in fuzzy:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if x &amp;lt; 4:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; topthree.append(f[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x+=1
&amp;nbsp;&amp;nbsp;&amp;nbsp; for rank, value in zip(newfields,topthree):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.setValue(rank,value)
&amp;nbsp;&amp;nbsp;&amp;nbsp; uCursor.updateRow(row)

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sat, 11 Dec 2021 18:14:13 GMT</pubDate>
    <dc:creator>ChristinaHerrick1</dc:creator>
    <dc:date>2021-12-11T18:14:13Z</dc:date>
    <item>
      <title>Updating fields using python in ArcGIS 10</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/updating-fields-using-python-in-arcgis-10/m-p/399475#M13566</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have 10 fields that have a floating value between 0 and 1.&amp;nbsp; These fields have a meaningless name, so they've been assigned aliases.&amp;nbsp; I also have three fields called 'First', 'Second', and 'Third' that are empty.&amp;nbsp; Using python, I want to find the first, second, and third highest of the 10 values for each record and assign the field alias to the First, Second, and Third fields respectively.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;For instance, in a given record, if the highest value of the 10 floating numbers was from the field with the alias 'NF', then the field 'First' would get the value 'NF'.&amp;nbsp; I've been at this for a few hours and I can't seem to make it work.&amp;nbsp; Any help would be much appreciated.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 31 Oct 2011 15:26:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/updating-fields-using-python-in-arcgis-10/m-p/399475#M13566</guid>
      <dc:creator>ChristinaHerrick1</dc:creator>
      <dc:date>2011-10-31T15:26:34Z</dc:date>
    </item>
    <item>
      <title>Re: Updating fields using python in ArcGIS 10</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/updating-fields-using-python-in-arcgis-10/m-p/399476#M13567</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;You can put your 10 fields into a list and sort it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Then the first, second and third value of this list can be written to your 3 fields.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 02 Nov 2011 13:57:11 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/updating-fields-using-python-in-arcgis-10/m-p/399476#M13567</guid>
      <dc:creator>benk</dc:creator>
      <dc:date>2011-11-02T13:57:11Z</dc:date>
    </item>
    <item>
      <title>Re: Updating fields using python in ArcGIS 10</title>
      <link>https://community.esri.com/t5/geoprocessing-questions/updating-fields-using-python-in-arcgis-10/m-p/399477#M13568</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Thanks, Ben.&amp;nbsp; That's what I ended up doing.&amp;nbsp; Here's the code in case anyone's interested.&amp;nbsp; I'm sure someone else out there could do it in less lines of code, but it works nonetheless.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import os
from operator import itemgetter
import arcpy

inspace = "C:/Data/export.gdb"
shapefile = inspace + os.sep + "classification_2011_1028"

fields = arcpy.ListFields(shapefile, "M*") # The "nonsense" name of the 10 fields all began with 'M'
newfields = ["First", "Second", "Third"] # The empty fields where the top three numbers would go

uCursor = arcpy.UpdateCursor(shapefile)

for row in uCursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp; fuzzy = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; topthree = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; x = 1
&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in fields:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; name = field.aliasName 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value = row.getValue(field.name)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fuzzy.append([name,value])
&amp;nbsp;&amp;nbsp;&amp;nbsp; fuzzy.sort(key=itemgetter(1),reverse=True)
&amp;nbsp;&amp;nbsp;&amp;nbsp; for f in fuzzy:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if x &amp;lt; 4:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; topthree.append(f[0])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; x+=1
&amp;nbsp;&amp;nbsp;&amp;nbsp; for rank, value in zip(newfields,topthree):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row.setValue(rank,value)
&amp;nbsp;&amp;nbsp;&amp;nbsp; uCursor.updateRow(row)

&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 11 Dec 2021 18:14:13 GMT</pubDate>
      <guid>https://community.esri.com/t5/geoprocessing-questions/updating-fields-using-python-in-arcgis-10/m-p/399477#M13568</guid>
      <dc:creator>ChristinaHerrick1</dc:creator>
      <dc:date>2021-12-11T18:14:13Z</dc:date>
    </item>
  </channel>
</rss>

