Copying/replacing first letter in column of attribute table in ArcMap with field calculator and Python...
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}
How to copy / replace the first letter in a column if that letter is "N" and replace with "C" in the field name "DISTRICT" inside the attribute table in ArcMap using Python inside the field calculator?
arcgis-desktop arcmap field-calculator python-parser
put on hold as off-topic by Dan C, Kadir Şahbaz, csk, BERA, ahmadhanb 14 mins ago
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "When seeking help to debug/write/improve code always provide the desired behavior, a specific problem/error and the shortest code (as formatted text, not pictures) needed to reproduce it in the question body. Providing a clear problem statement and a code attempt helps others to help you." – Dan C, Kadir Şahbaz, csk, BERA, ahmadhanb
If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
How to copy / replace the first letter in a column if that letter is "N" and replace with "C" in the field name "DISTRICT" inside the attribute table in ArcMap using Python inside the field calculator?
arcgis-desktop arcmap field-calculator python-parser
put on hold as off-topic by Dan C, Kadir Şahbaz, csk, BERA, ahmadhanb 14 mins ago
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "When seeking help to debug/write/improve code always provide the desired behavior, a specific problem/error and the shortest code (as formatted text, not pictures) needed to reproduce it in the question body. Providing a clear problem statement and a code attempt helps others to help you." – Dan C, Kadir Şahbaz, csk, BERA, ahmadhanb
If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
How to copy / replace the first letter in a column if that letter is "N" and replace with "C" in the field name "DISTRICT" inside the attribute table in ArcMap using Python inside the field calculator?
arcgis-desktop arcmap field-calculator python-parser
How to copy / replace the first letter in a column if that letter is "N" and replace with "C" in the field name "DISTRICT" inside the attribute table in ArcMap using Python inside the field calculator?
arcgis-desktop arcmap field-calculator python-parser
arcgis-desktop arcmap field-calculator python-parser
edited 5 hours ago
PolyGeo♦
53.9k1781245
53.9k1781245
asked 9 hours ago
Anthony StokesAnthony Stokes
947
947
put on hold as off-topic by Dan C, Kadir Şahbaz, csk, BERA, ahmadhanb 14 mins ago
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "When seeking help to debug/write/improve code always provide the desired behavior, a specific problem/error and the shortest code (as formatted text, not pictures) needed to reproduce it in the question body. Providing a clear problem statement and a code attempt helps others to help you." – Dan C, Kadir Şahbaz, csk, BERA, ahmadhanb
If this question can be reworded to fit the rules in the help center, please edit the question.
put on hold as off-topic by Dan C, Kadir Şahbaz, csk, BERA, ahmadhanb 14 mins ago
This question appears to be off-topic. The users who voted to close gave this specific reason:
- "When seeking help to debug/write/improve code always provide the desired behavior, a specific problem/error and the shortest code (as formatted text, not pictures) needed to reproduce it in the question body. Providing a clear problem statement and a code attempt helps others to help you." – Dan C, Kadir Şahbaz, csk, BERA, ahmadhanb
If this question can be reworded to fit the rules in the help center, please edit the question.
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
The general format for overall string replace in Python in the Field Calculator is
= !stringvar!.replace("substring to find", "new substring")
If you want to only change the first initial for all records, you could build this based on a slice of the string.
= "C" + !stringvar![1:]
If you only want to change the first initial if it starts with a "N", then you're getting into conditional statements (if/then) and should wrap this in a function for use within the Field Calculator. Build this in the codebook/pre-Logic script code.
def replaceIfN(fieldtochange):
if fieldtochange.lower().startswith("n"): # handles both n and N
return "C" + fieldtochange[1:]
else: # no change made
return fieldtochange
Run this with
= replaceIfN(!DISTRICT!)
See http://desktop.arcgis.com/en/arcmap/10.3/manage-data/tables/calculate-field-examples.htm
The conditional statement is the solution I was looking for.
– Anthony Stokes
8 hours ago
add a comment |
You don't even have to write any code!
Simply edit the table and do a find and replace on the selected field.
Example of replacing B with XXX.
Result of replacement
I need to know how to copy / replace the first letter in a column if that letter is "N" and replace with "C" using python inside the field calculator. I don't want to replace every instance of "N". This would require some code.
– Anthony Stokes
8 hours ago
1
Well... if you look at the image, what does Text match say... You can use @Jackson_Dunn's approach if you intend to wrap the field calculate in say modelbuilder. If you just want to replace the first N with C then my approach is less painful and quicker.
– Hornbydd
8 hours ago
I see what you mean. This is the fastest way without code but I like to always know the python equivalent.
– Anthony Stokes
8 hours ago
Are imgur images always going to be on the site, or is there a risk of them not loading at some distant point in the future? If the latter, please elaborate on your answer (e.g. Select "Start of Field" for Text match)
– smiller
7 hours ago
1
I didnt know of find and replace, nice!
– BERA
6 hours ago
|
show 2 more comments
You can add a number to the python replace code to determine how many instances to change (in your case just one):
!District!.replace("C", "N", 1)
New contributor
Thanks @Jackson Dunn. I'd be curious as to performance between the string replace number of instances vs. string slicing. I suspect in this case it's minimal but may be worth testing on larger fields or more complex replacements.
– smiller
5 hours ago
add a comment |
Using vbscript instead if you're working in ArcGIS Desktop, The code is:
REPLACE ([DISTRICT],"C","N",1,1)
Where :
- the first 1 equals the line position (first character)
- and the second 1 is amount of characters to change (only need to change one letter per row, not all C's and N's).
New contributor
This is the VB script solution so thank you for that but I was wondering how to solve it using python in the field calculator.
– Anthony Stokes
9 hours ago
add a comment |
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
The general format for overall string replace in Python in the Field Calculator is
= !stringvar!.replace("substring to find", "new substring")
If you want to only change the first initial for all records, you could build this based on a slice of the string.
= "C" + !stringvar![1:]
If you only want to change the first initial if it starts with a "N", then you're getting into conditional statements (if/then) and should wrap this in a function for use within the Field Calculator. Build this in the codebook/pre-Logic script code.
def replaceIfN(fieldtochange):
if fieldtochange.lower().startswith("n"): # handles both n and N
return "C" + fieldtochange[1:]
else: # no change made
return fieldtochange
Run this with
= replaceIfN(!DISTRICT!)
See http://desktop.arcgis.com/en/arcmap/10.3/manage-data/tables/calculate-field-examples.htm
The conditional statement is the solution I was looking for.
– Anthony Stokes
8 hours ago
add a comment |
The general format for overall string replace in Python in the Field Calculator is
= !stringvar!.replace("substring to find", "new substring")
If you want to only change the first initial for all records, you could build this based on a slice of the string.
= "C" + !stringvar![1:]
If you only want to change the first initial if it starts with a "N", then you're getting into conditional statements (if/then) and should wrap this in a function for use within the Field Calculator. Build this in the codebook/pre-Logic script code.
def replaceIfN(fieldtochange):
if fieldtochange.lower().startswith("n"): # handles both n and N
return "C" + fieldtochange[1:]
else: # no change made
return fieldtochange
Run this with
= replaceIfN(!DISTRICT!)
See http://desktop.arcgis.com/en/arcmap/10.3/manage-data/tables/calculate-field-examples.htm
The conditional statement is the solution I was looking for.
– Anthony Stokes
8 hours ago
add a comment |
The general format for overall string replace in Python in the Field Calculator is
= !stringvar!.replace("substring to find", "new substring")
If you want to only change the first initial for all records, you could build this based on a slice of the string.
= "C" + !stringvar![1:]
If you only want to change the first initial if it starts with a "N", then you're getting into conditional statements (if/then) and should wrap this in a function for use within the Field Calculator. Build this in the codebook/pre-Logic script code.
def replaceIfN(fieldtochange):
if fieldtochange.lower().startswith("n"): # handles both n and N
return "C" + fieldtochange[1:]
else: # no change made
return fieldtochange
Run this with
= replaceIfN(!DISTRICT!)
See http://desktop.arcgis.com/en/arcmap/10.3/manage-data/tables/calculate-field-examples.htm
The general format for overall string replace in Python in the Field Calculator is
= !stringvar!.replace("substring to find", "new substring")
If you want to only change the first initial for all records, you could build this based on a slice of the string.
= "C" + !stringvar![1:]
If you only want to change the first initial if it starts with a "N", then you're getting into conditional statements (if/then) and should wrap this in a function for use within the Field Calculator. Build this in the codebook/pre-Logic script code.
def replaceIfN(fieldtochange):
if fieldtochange.lower().startswith("n"): # handles both n and N
return "C" + fieldtochange[1:]
else: # no change made
return fieldtochange
Run this with
= replaceIfN(!DISTRICT!)
See http://desktop.arcgis.com/en/arcmap/10.3/manage-data/tables/calculate-field-examples.htm
answered 9 hours ago
smillersmiller
2,229217
2,229217
The conditional statement is the solution I was looking for.
– Anthony Stokes
8 hours ago
add a comment |
The conditional statement is the solution I was looking for.
– Anthony Stokes
8 hours ago
The conditional statement is the solution I was looking for.
– Anthony Stokes
8 hours ago
The conditional statement is the solution I was looking for.
– Anthony Stokes
8 hours ago
add a comment |
You don't even have to write any code!
Simply edit the table and do a find and replace on the selected field.
Example of replacing B with XXX.
Result of replacement
I need to know how to copy / replace the first letter in a column if that letter is "N" and replace with "C" using python inside the field calculator. I don't want to replace every instance of "N". This would require some code.
– Anthony Stokes
8 hours ago
1
Well... if you look at the image, what does Text match say... You can use @Jackson_Dunn's approach if you intend to wrap the field calculate in say modelbuilder. If you just want to replace the first N with C then my approach is less painful and quicker.
– Hornbydd
8 hours ago
I see what you mean. This is the fastest way without code but I like to always know the python equivalent.
– Anthony Stokes
8 hours ago
Are imgur images always going to be on the site, or is there a risk of them not loading at some distant point in the future? If the latter, please elaborate on your answer (e.g. Select "Start of Field" for Text match)
– smiller
7 hours ago
1
I didnt know of find and replace, nice!
– BERA
6 hours ago
|
show 2 more comments
You don't even have to write any code!
Simply edit the table and do a find and replace on the selected field.
Example of replacing B with XXX.
Result of replacement
I need to know how to copy / replace the first letter in a column if that letter is "N" and replace with "C" using python inside the field calculator. I don't want to replace every instance of "N". This would require some code.
– Anthony Stokes
8 hours ago
1
Well... if you look at the image, what does Text match say... You can use @Jackson_Dunn's approach if you intend to wrap the field calculate in say modelbuilder. If you just want to replace the first N with C then my approach is less painful and quicker.
– Hornbydd
8 hours ago
I see what you mean. This is the fastest way without code but I like to always know the python equivalent.
– Anthony Stokes
8 hours ago
Are imgur images always going to be on the site, or is there a risk of them not loading at some distant point in the future? If the latter, please elaborate on your answer (e.g. Select "Start of Field" for Text match)
– smiller
7 hours ago
1
I didnt know of find and replace, nice!
– BERA
6 hours ago
|
show 2 more comments
You don't even have to write any code!
Simply edit the table and do a find and replace on the selected field.
Example of replacing B with XXX.
Result of replacement
You don't even have to write any code!
Simply edit the table and do a find and replace on the selected field.
Example of replacing B with XXX.
Result of replacement
answered 9 hours ago
HornbyddHornbydd
27.1k32957
27.1k32957
I need to know how to copy / replace the first letter in a column if that letter is "N" and replace with "C" using python inside the field calculator. I don't want to replace every instance of "N". This would require some code.
– Anthony Stokes
8 hours ago
1
Well... if you look at the image, what does Text match say... You can use @Jackson_Dunn's approach if you intend to wrap the field calculate in say modelbuilder. If you just want to replace the first N with C then my approach is less painful and quicker.
– Hornbydd
8 hours ago
I see what you mean. This is the fastest way without code but I like to always know the python equivalent.
– Anthony Stokes
8 hours ago
Are imgur images always going to be on the site, or is there a risk of them not loading at some distant point in the future? If the latter, please elaborate on your answer (e.g. Select "Start of Field" for Text match)
– smiller
7 hours ago
1
I didnt know of find and replace, nice!
– BERA
6 hours ago
|
show 2 more comments
I need to know how to copy / replace the first letter in a column if that letter is "N" and replace with "C" using python inside the field calculator. I don't want to replace every instance of "N". This would require some code.
– Anthony Stokes
8 hours ago
1
Well... if you look at the image, what does Text match say... You can use @Jackson_Dunn's approach if you intend to wrap the field calculate in say modelbuilder. If you just want to replace the first N with C then my approach is less painful and quicker.
– Hornbydd
8 hours ago
I see what you mean. This is the fastest way without code but I like to always know the python equivalent.
– Anthony Stokes
8 hours ago
Are imgur images always going to be on the site, or is there a risk of them not loading at some distant point in the future? If the latter, please elaborate on your answer (e.g. Select "Start of Field" for Text match)
– smiller
7 hours ago
1
I didnt know of find and replace, nice!
– BERA
6 hours ago
I need to know how to copy / replace the first letter in a column if that letter is "N" and replace with "C" using python inside the field calculator. I don't want to replace every instance of "N". This would require some code.
– Anthony Stokes
8 hours ago
I need to know how to copy / replace the first letter in a column if that letter is "N" and replace with "C" using python inside the field calculator. I don't want to replace every instance of "N". This would require some code.
– Anthony Stokes
8 hours ago
1
1
Well... if you look at the image, what does Text match say... You can use @Jackson_Dunn's approach if you intend to wrap the field calculate in say modelbuilder. If you just want to replace the first N with C then my approach is less painful and quicker.
– Hornbydd
8 hours ago
Well... if you look at the image, what does Text match say... You can use @Jackson_Dunn's approach if you intend to wrap the field calculate in say modelbuilder. If you just want to replace the first N with C then my approach is less painful and quicker.
– Hornbydd
8 hours ago
I see what you mean. This is the fastest way without code but I like to always know the python equivalent.
– Anthony Stokes
8 hours ago
I see what you mean. This is the fastest way without code but I like to always know the python equivalent.
– Anthony Stokes
8 hours ago
Are imgur images always going to be on the site, or is there a risk of them not loading at some distant point in the future? If the latter, please elaborate on your answer (e.g. Select "Start of Field" for Text match)
– smiller
7 hours ago
Are imgur images always going to be on the site, or is there a risk of them not loading at some distant point in the future? If the latter, please elaborate on your answer (e.g. Select "Start of Field" for Text match)
– smiller
7 hours ago
1
1
I didnt know of find and replace, nice!
– BERA
6 hours ago
I didnt know of find and replace, nice!
– BERA
6 hours ago
|
show 2 more comments
You can add a number to the python replace code to determine how many instances to change (in your case just one):
!District!.replace("C", "N", 1)
New contributor
Thanks @Jackson Dunn. I'd be curious as to performance between the string replace number of instances vs. string slicing. I suspect in this case it's minimal but may be worth testing on larger fields or more complex replacements.
– smiller
5 hours ago
add a comment |
You can add a number to the python replace code to determine how many instances to change (in your case just one):
!District!.replace("C", "N", 1)
New contributor
Thanks @Jackson Dunn. I'd be curious as to performance between the string replace number of instances vs. string slicing. I suspect in this case it's minimal but may be worth testing on larger fields or more complex replacements.
– smiller
5 hours ago
add a comment |
You can add a number to the python replace code to determine how many instances to change (in your case just one):
!District!.replace("C", "N", 1)
New contributor
You can add a number to the python replace code to determine how many instances to change (in your case just one):
!District!.replace("C", "N", 1)
New contributor
edited 5 hours ago
PolyGeo♦
53.9k1781245
53.9k1781245
New contributor
answered 6 hours ago
Jackson DunnJackson Dunn
192
192
New contributor
New contributor
Thanks @Jackson Dunn. I'd be curious as to performance between the string replace number of instances vs. string slicing. I suspect in this case it's minimal but may be worth testing on larger fields or more complex replacements.
– smiller
5 hours ago
add a comment |
Thanks @Jackson Dunn. I'd be curious as to performance between the string replace number of instances vs. string slicing. I suspect in this case it's minimal but may be worth testing on larger fields or more complex replacements.
– smiller
5 hours ago
Thanks @Jackson Dunn. I'd be curious as to performance between the string replace number of instances vs. string slicing. I suspect in this case it's minimal but may be worth testing on larger fields or more complex replacements.
– smiller
5 hours ago
Thanks @Jackson Dunn. I'd be curious as to performance between the string replace number of instances vs. string slicing. I suspect in this case it's minimal but may be worth testing on larger fields or more complex replacements.
– smiller
5 hours ago
add a comment |
Using vbscript instead if you're working in ArcGIS Desktop, The code is:
REPLACE ([DISTRICT],"C","N",1,1)
Where :
- the first 1 equals the line position (first character)
- and the second 1 is amount of characters to change (only need to change one letter per row, not all C's and N's).
New contributor
This is the VB script solution so thank you for that but I was wondering how to solve it using python in the field calculator.
– Anthony Stokes
9 hours ago
add a comment |
Using vbscript instead if you're working in ArcGIS Desktop, The code is:
REPLACE ([DISTRICT],"C","N",1,1)
Where :
- the first 1 equals the line position (first character)
- and the second 1 is amount of characters to change (only need to change one letter per row, not all C's and N's).
New contributor
This is the VB script solution so thank you for that but I was wondering how to solve it using python in the field calculator.
– Anthony Stokes
9 hours ago
add a comment |
Using vbscript instead if you're working in ArcGIS Desktop, The code is:
REPLACE ([DISTRICT],"C","N",1,1)
Where :
- the first 1 equals the line position (first character)
- and the second 1 is amount of characters to change (only need to change one letter per row, not all C's and N's).
New contributor
Using vbscript instead if you're working in ArcGIS Desktop, The code is:
REPLACE ([DISTRICT],"C","N",1,1)
Where :
- the first 1 equals the line position (first character)
- and the second 1 is amount of characters to change (only need to change one letter per row, not all C's and N's).
New contributor
edited 5 hours ago
PolyGeo♦
53.9k1781245
53.9k1781245
New contributor
answered 9 hours ago
Jackson DunnJackson Dunn
192
192
New contributor
New contributor
This is the VB script solution so thank you for that but I was wondering how to solve it using python in the field calculator.
– Anthony Stokes
9 hours ago
add a comment |
This is the VB script solution so thank you for that but I was wondering how to solve it using python in the field calculator.
– Anthony Stokes
9 hours ago
This is the VB script solution so thank you for that but I was wondering how to solve it using python in the field calculator.
– Anthony Stokes
9 hours ago
This is the VB script solution so thank you for that but I was wondering how to solve it using python in the field calculator.
– Anthony Stokes
9 hours ago
add a comment |