How to apply split string operation on address column in Python?

Viewed 121

Hi I have this column in df

**Purchase Address**
917 1st St, Dallas, TX 75001
682 Chestnut St, Boston, MA 02215
669 Spruce St, Los Angeles, CA 90001

The expected output should be a new column City with values like:

**City**
Dallas(TX)
Boston(MA)
Los Angeles(CA)

Thanks in advance...

2 Answers

you can use the split and map method to get the particular address city. link

>> data['**Purchase Address**'].str.split(",")

0            [917 1st St,  Dallas,  TX 75001]
1       [682 Chestnut St,  Boston,  MA 02215]
2    [669 Spruce St,  Los Angeles,  CA 90001]
Name: **Purchase Address**, dtype: object


>> data["address"] = data['**Purchase Address**'].str.split(",").map(lambda ele : ele[1])

     **Purchase Address**                  address
0   917 1st St, Dallas, TX 75001           Dallas
1   682 Chestnut St, Boston, MA 02215      Boston
2   669 Spruce St, Los Angeles, CA 90001   Los Angeles

You can use str.extract with regex pattern containing capture groups:

s = df['Purchase Address'].str.extract(r'\s([^,]+),\s([A-Z]+)\s\d+$')
df['City'] = s[0] + '(' + s[1] + ')'

Result:

                       Purchase Address             City
0          917 1st St, Dallas, TX 75001       Dallas(TX)
1     682 Chestnut St, Boston, MA 02215       Boston(MA)
2  669 Spruce St, Los Angeles, CA 90001  Los Angeles(CA)
Related