[SOLVED] Extract values from string column in pandas dataframe

Issue

I have a column in a dataframe which have a pattern as shown in the below example

id=1;name=x;color=blue;

I am trying to extract the value for name and store it in the same dataframe with column name as "name" and value is "x"

I tried the below code but it doesn’t seem to work correctly

df['name'] = df['col'].str.extract("'name': '(.*?)'")

Solution

The 'name': '(.*?)' regex is meant to extract a string between 'name': ' and the next ' char. You do not have single quotes, nor : in your input.

You can use

df['name'] = df['col'].str.extract(r"name=([^;]*)")

See the regex demo, name=([^;]*) matches the name= as left-hand side context and extracts one or more chars other than a ; right after that into the name column.

Answered By – Wiktor Stribiżew

Answer Checked By – Cary Denson (BugsFixing Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *