<?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: Field Calculator convert text to integer then populate new field with sum in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582899#M45682</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Alternatively, you can do the following in the field calculator. I'm not sure what the performance implications of creating a one-row Search Cursor for every row in your data would be, but it works.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;def addition(fid):
&amp;nbsp;&amp;nbsp;&amp;nbsp; fc = "points"
&amp;nbsp;&amp;nbsp;&amp;nbsp; myField = "prior2_3"
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldList = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldList.append(myField )
&amp;nbsp;&amp;nbsp;&amp;nbsp; hitsFields = arcpy.ListFields(fc,"Hits*")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for hitsField in hitsFields:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldList.append(hitsField.name)
&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(fc,fieldList,' "FID" = ' + str(fid)) as cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sum = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in range(1,len(fieldList)):
&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; sum += int(row[field])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return sum&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the expression would be:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;addition(!FID!)&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 12 Dec 2021 01:03:31 GMT</pubDate>
    <dc:creator>DarrenWiens2</dc:creator>
    <dc:date>2021-12-12T01:03:31Z</dc:date>
    <item>
      <title>Field Calculator convert text to integer then populate new field with sum</title>
      <link>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582897#M45680</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: rgba(248, 248, 248, 0.6);"&gt;I have a .dbf with about 50 text fields containing numerals, I would like to convert those to integers and then sum them all in a new double field I created, is there an easy field calculation that could do this. I have working code but wanted to see other peoples examples/thoughts.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: rgba(248, 248, 248, 0.6); color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;"&gt;Pre-Logic Script Code:&lt;/SPAN&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="kwd" style="color: #8a4a0b;"&gt;def&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt; addition&lt;/SPAN&gt;&lt;SPAN class="pun" style="color: #145680;"&gt;(*&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt;args&lt;/SPAN&gt;&lt;SPAN class="pun" style="color: #145680;"&gt;):&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt;
&amp;nbsp; my_sum &lt;/SPAN&gt;&lt;SPAN class="pun" style="color: #145680;"&gt;=&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt; &lt;/SPAN&gt;&lt;SPAN class="lit" style="color: #953838;"&gt;0&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt;
&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="kwd" style="color: #8a4a0b;"&gt;for&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt; i &lt;/SPAN&gt;&lt;SPAN class="kwd" style="color: #8a4a0b;"&gt;in&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt; args&lt;/SPAN&gt;&lt;SPAN class="pun" style="color: #145680;"&gt;:&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt;
&amp;nbsp; my_sum &lt;/SPAN&gt;&lt;SPAN class="pun" style="color: #145680;"&gt;+=&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt; int&lt;/SPAN&gt;&lt;SPAN class="pun" style="color: #145680;"&gt;(&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt;i&lt;/SPAN&gt;&lt;SPAN class="pun" style="color: #145680;"&gt;)&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt;
&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;SPAN class="kwd" style="color: #8a4a0b;"&gt;return&lt;/SPAN&gt;&lt;SPAN class="pln" style="color: #000000;"&gt; my_sum&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;SPAN style="color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; background-color: rgba(248, 248, 248, 0.6);"&gt;prior2_3 = (my new field):&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="background-color: rgba(248, 248, 248, 0.6); color: #333333; font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;"&gt;addition( !Hits_07_21!, !Hits_07_22!, !Hits_07_23!, !Hits_07_24!, !Hits_07_25!, !Hits_07_26!, !Hits_07_27!, !Hits_07_28!, !Hits_07_29!, !Hits_07_30!, !Hits_07_31!, !Hits_08_01!, !Hits_08_02!, !Hits_08_03!, !Hits_08_04!, !Hits_08_05!, !Hits_08_06!, !Hits_08_07!, !Hits_08_08!, !Hits_08_09!, !Hits_08_10!, !Hits_08_11!, !Hits_08_12!, !Hits_08_13!, !Hits_08_14!, !Hits_08_15!, !Hits_08_16!, !Hits_08_17!, !Hits_08_18!, !Hits_08_19!, !Hits_08_20!, !Hits_08_21!, !Hits_08_22!, !Hits_08_23!, !Hits_08_24!, !Hits_08_25!, !Hits_08_26!, !Hits_10_08!, !Hits_10_09!, !Hits_10_10!, !Hits_10_11!, !Hits_10_13!, !Hits_10_14!, !Hits_10_15!, !Hits_10_16!, !Hits_10_17!, !Hits_10_18!, !Hits_10_19!, !Hits_10_20!, !Hits_10_21!, !Hits_10_22!, !Hits_10_23!, !Hits_10_24!, !Hits_10_25!, !Hits_10_26!, !Hits_10_27!, !Hits_10_28!, !Hits_10_29!, !Hits_11_02!, !Hits_11_03!, !Hits_11_04!, !Hits_11_05!, !Hits_11_06!, !Hits_11_07!, !Hits_11_08!, !Hits_11_09!, !Hits_11_10!, !Hits_11_11!, !Hits_11_12!, !Hits_11_13!, !Hits_12_01!, !Hits_12_02!, !Hits_12_03!, !Hits_12_10!, !Hits_12_11!, !Hits_12_13!, !Hits_12_14!, !Hits_12_15!, !Hits_12_16!, !Hits_12_17!, !Hits_12_18!, !Hits_12_19!, !Hits_12_20!, !Hits_12_21!, !Hits_12_23!, !Hits_12_24!, !Hits_12_25!, !Hits_12_26!, !Hits_12_27!, !Hits_12_28!, !Hits_12_29!, !Hits_12_30!, !Hits_12_31!, !Hits_01_01!, !Hits_01_02!, !Hits_01_03!, !Hits_01_04!, !Hits_01_05!, !Hits_01_06!, !Hits_01_07!, !Hits_01_08!, !Hits_01_11!, !Hits_01_13!, !Hits_01_15!, !Hits_01_16!, !Hits_01_17!, !Hits_01_19!, !Hits_01_20!, !Hits_01_21!, !Hits_01_22!, !Hits_01_23!, !Hits_01_24!, !Hits_01_25!, !Hits_01_26!, !Hits_01_27!, !Hits_01_28!, !Hits_01_29!, !Hits_01_30!, !Hits_01_31!, !Hits_02_01!, !Hits_02_02!, !Hits_02_03!, !Hits_04_29!)&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:03:26 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582897#M45680</guid>
      <dc:creator>MatthewRice</dc:creator>
      <dc:date>2021-12-12T01:03:26Z</dc:date>
    </item>
    <item>
      <title>Re: Field Calculator convert text to integer then populate new field with sum</title>
      <link>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582898#M45681</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;If you're open to bypassing the field calculator completely, you can do this with an &lt;A href="http://resources.arcgis.com/en/help/main/10.1/index.html#/UpdateCursor/018w00000014000000/" rel="nofollow noopener noreferrer" target="_blank"&gt;Update Cursor&lt;/A&gt; and plain old Arcpy.&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; fc = "points" # your feature layer
... myField = "prior2_3" # the field name
... fieldList = [] # empty list
... fieldList.append(myField ) # add the known field name to the list
... hitsFields = arcpy.ListFields(fc,"Hits*") # find all the fields starting with "Hits"
... for hitsField in hitsFields:
...&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldList.append(hitsField.name) # add the hits field names to the list
... with arcpy.da.UpdateCursor(fc,fieldList) as cursor:
...&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in cursor:
...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sum = 0
...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in range(1,len(fieldList)): # loop through all hits fields
...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sum += int(row[field]) # add the values
...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[0] = sum # store the value in the known field, first in the list
...&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cursor.updateRow(row) # update the field&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:03:28 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582898#M45681</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2021-12-12T01:03:28Z</dc:date>
    </item>
    <item>
      <title>Re: Field Calculator convert text to integer then populate new field with sum</title>
      <link>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582899#M45682</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Alternatively, you can do the following in the field calculator. I'm not sure what the performance implications of creating a one-row Search Cursor for every row in your data would be, but it works.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;def addition(fid):
&amp;nbsp;&amp;nbsp;&amp;nbsp; fc = "points"
&amp;nbsp;&amp;nbsp;&amp;nbsp; myField = "prior2_3"
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldList = []
&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldList.append(myField )
&amp;nbsp;&amp;nbsp;&amp;nbsp; hitsFields = arcpy.ListFields(fc,"Hits*")
&amp;nbsp;&amp;nbsp;&amp;nbsp; for hitsField in hitsFields:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; fieldList.append(hitsField.name)
&amp;nbsp;&amp;nbsp;&amp;nbsp; with arcpy.da.SearchCursor(fc,fieldList,' "FID" = ' + str(fid)) as cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in cursor:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sum = 0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for field in range(1,len(fieldList)):
&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; sum += int(row[field])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return sum&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;the expression would be:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;addition(!FID!)&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:03:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582899#M45682</guid>
      <dc:creator>DarrenWiens2</dc:creator>
      <dc:date>2021-12-12T01:03:31Z</dc:date>
    </item>
    <item>
      <title>Re: Field Calculator convert text to integer then populate new field with sum</title>
      <link>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582900#M45683</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You should really consider converting you table to a numpy array then you can process the data quite simply.&amp;nbsp; For example.&amp;nbsp; I don't have ArcMap installed on this iThingy, but you should examine:&lt;/P&gt;&lt;P&gt;TableToNumPyArray&amp;nbsp; &lt;A href="http://resources.arcgis.com/en/heLP/MAIN/10.2/index.html#//018w00000018000000" title="http://resources.arcgis.com/en/heLP/MAIN/10.2/index.html#//018w00000018000000" rel="nofollow noopener noreferrer" target="_blank"&gt;ArcGIS Help (10.2, 10.2.1, and 10.2.2)&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Then you could replace my 'fields' variable with a listFields on your table, skip the seed to get array 'a', convert it to an integer array as in 'dt', do the sum (array c) then whatever.&amp;nbsp; The principles are demonstrated here.&lt;/P&gt;&lt;P&gt;I prefer numpy arrays when working with multiple columns for pretty much anything, they are are often a good substitute for cursors and even can be combined with them.&amp;nbsp; So just a thought as to the possibilities.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;import numpy as np
fields = ['a','b','c','d','e']
seed = [['1','2','3','4','5'],
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ['2','3','4','5','1'],
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ['2','3','4','5','2']]
a = np.array(seed)
dt = np.dtype('int')
b = np.asarray(a,dtype=dt)
c = np.sum(b,axis=0)
print('Data as text:\n{}'.format(a))
print('Data as int:\n{}'.format(b))
print('Data sum by column:\n{}'.format(c))&lt;/PRE&gt;&lt;P&gt;Output for the above example&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;Data as text:
[['1' '2' '3' '4' '5']
['2' '3' '4' '5' '1']
['2' '3' '4' '5' '2']]
Data as int:
[[1 2 3 4 5]
[2 3 4 5 1]
[2 3 4 5 2]]
Data sum by column:
[ 5&amp;nbsp; 8 11 14&amp;nbsp; 8]&lt;/PRE&gt;&lt;P&gt;​&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:03:34 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582900#M45683</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2021-12-12T01:03:34Z</dc:date>
    </item>
    <item>
      <title>Re: Field Calculator convert text to integer then populate new field with sum</title>
      <link>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582901#M45684</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Here's my crack at this, using the magic of Python list comprehensions.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Here's my version of the arcpy approach:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;arcpy.AddField_management(tbl, "FSUM", "DOUBLE")
sfields = [f.name for f in arcpy.ListFields(tbl, "Hits*")]
with arcpy.da.updateCursor(tbl, ["FSUM"] + sfields]) as rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp; for row in rows:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; row[0] = sum([float(x) for x in row[1:]])
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rows.updateRow(row)&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;And here's how that would look using Field Calculator:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Code block:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;def addition(*args):
&amp;nbsp;&amp;nbsp;&amp;nbsp; return sum([float(x) for x in args])&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Expression:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;addition(!Hits_07_21!,&amp;nbsp; ..........)&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 01:03:37 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/field-calculator-convert-text-to-integer-then/m-p/582901#M45684</guid>
      <dc:creator>curtvprice</dc:creator>
      <dc:date>2021-12-12T01:03:37Z</dc:date>
    </item>
  </channel>
</rss>

