<?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: arcpy.CalculateField_management - compare: how to return fieldvalues in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622228#M48452</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Calculate Field is a set-based tool.&amp;nbsp; If you want to update only a subset of records, you need to either create a feature layer and apply a selection set or embed some logic into the code block.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 04 Dec 2018 14:10:43 GMT</pubDate>
    <dc:creator>JoshuaBixby</dc:creator>
    <dc:date>2018-12-04T14:10:43Z</dc:date>
    <item>
      <title>arcpy.CalculateField_management - compare: how to return fieldvalues</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622223#M48447</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;I use a python script to compare the value of a field like follows:&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;def&lt;/SPAN&gt; &lt;SPAN class="token function"&gt;compare&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;class1&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;

&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;if&lt;/SPAN&gt; class1 &lt;SPAN class="keyword token"&gt;in&lt;/SPAN&gt; &lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;&lt;SPAN class="number token"&gt;612&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;611&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Text1"&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;elif&lt;/SPAN&gt; class1 &lt;SPAN class="operator token"&gt;==&lt;/SPAN&gt; &lt;SPAN class="number token"&gt;617&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"Text2"&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;else&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;:&lt;/SPAN&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; !Field!&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;(followed by arcpy.CalculateField_management....)&lt;/P&gt;&lt;P&gt;this works perfectly to return a standardized text like "Text 1" or "Text 2".&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But what I really want to do is I want to return a field-value instead of a text.&lt;/P&gt;&lt;P&gt;If (612, 611) return Field1-value;&lt;/P&gt;&lt;P&gt;if (617) return Field2-value.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried it with !Field! instead of "Text 1" but it didn't work.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What's the code to return a fieldvalue instead of text?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your help!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 02:31:40 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622223#M48447</guid>
      <dc:creator>SilvanStöckli</dc:creator>
      <dc:date>2021-12-12T02:31:40Z</dc:date>
    </item>
    <item>
      <title>Re: arcpy.CalculateField_management - compare: how to return fieldvalues</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622224#M48448</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You would have to change &lt;STRONG&gt;!Field1!&lt;/STRONG&gt; to &lt;STRONG&gt;class1&lt;/STRONG&gt; since class1 is representing what you find in Field1 and your script as it stands, has no idea what Field1 is. &amp;nbsp;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2018 12:03:06 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622224#M48448</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2018-12-04T12:03:06Z</dc:date>
    </item>
    <item>
      <title>Re: arcpy.CalculateField_management - compare: how to return fieldvalues</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622225#M48449</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;thanks for your help&lt;/P&gt;&lt;P&gt;the problem ist that I don't want to return the value from the field I'm comparing with but the value from an other field in the same table.&lt;/P&gt;&lt;P&gt;That's why I tried to use !"AnotherFieldName"! with those "!!"&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2018 12:56:25 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622225#M48449</guid>
      <dc:creator>SilvanStöckli</dc:creator>
      <dc:date>2018-12-04T12:56:25Z</dc:date>
    </item>
    <item>
      <title>Re: arcpy.CalculateField_management - compare: how to return fieldvalues</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622226#M48450</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;def compare(class1, another_value):

&amp;nbsp;&amp;nbsp; if class1 in (612, 611):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Text1"
&amp;nbsp;&amp;nbsp; elif class1 == 617:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return "Text2"
&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return another_value

# Expression below

compare(!some_field!, !another_field!)&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 02:31:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622226#M48450</guid>
      <dc:creator>DanPatterson_Retired</dc:creator>
      <dc:date>2021-12-12T02:31:43Z</dc:date>
    </item>
    <item>
      <title>Re: arcpy.CalculateField_management - compare: how to return fieldvalues</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622227#M48451</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I thought I found the solution:&lt;/P&gt;&lt;PRE class="language-python line-numbers"&gt;&lt;CODE&gt;&lt;SPAN class="keyword token"&gt;return&lt;/SPAN&gt; arcpy&lt;SPAN class="punctuation token"&gt;.&lt;/SPAN&gt;CalculateField_management&lt;SPAN class="punctuation token"&gt;(&lt;/SPAN&gt;fc&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; field&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"!AnotherFieldName!"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;"PYTHON_9.3"&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;,&lt;/SPAN&gt; &lt;SPAN class="string token"&gt;""&lt;/SPAN&gt;&lt;SPAN class="punctuation token"&gt;)&lt;/SPAN&gt;‍&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;But this calculates new values for the whole table instead of only for the ones with value 612 in "field"&lt;/P&gt;&lt;P&gt;Any idea? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your help!&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2018 13:40:36 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622227#M48451</guid>
      <dc:creator>SilvanStöckli</dc:creator>
      <dc:date>2018-12-04T13:40:36Z</dc:date>
    </item>
    <item>
      <title>Re: arcpy.CalculateField_management - compare: how to return fieldvalues</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622228#M48452</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Calculate Field is a set-based tool.&amp;nbsp; If you want to update only a subset of records, you need to either create a feature layer and apply a selection set or embed some logic into the code block.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 04 Dec 2018 14:10:43 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622228#M48452</guid>
      <dc:creator>JoshuaBixby</dc:creator>
      <dc:date>2018-12-04T14:10:43Z</dc:date>
    </item>
    <item>
      <title>Re: arcpy.CalculateField_management - compare: how to return fieldvalues</title>
      <link>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622229#M48453</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Dan posted the solution, ill rewrite it more explicitly for your question.&amp;nbsp; You can pass as many values/fields to a function as you like so that you can then return their values.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE class="lia-code-sample line-numbers language-none"&gt;&lt;CODE&gt;def compare(class1, class2, class3):

&amp;nbsp;&amp;nbsp; if class1 in (612, 611):
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return class2
&amp;nbsp;&amp;nbsp; elif class1 == 617:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return class3
&amp;nbsp;&amp;nbsp; else:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return class1

# Expression below

compare(!some_field!, !another_field!, !another_field2!)&lt;/CODE&gt;&lt;/PRE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 12 Dec 2021 02:31:45 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/arcpy-calculatefield-management-compare-how-to/m-p/622229#M48453</guid>
      <dc:creator>LukeWebb</dc:creator>
      <dc:date>2021-12-12T02:31:45Z</dc:date>
    </item>
  </channel>
</rss>

