Kevin Nash
Kevin Nash

Reputation: 1561

Pandas - Splitting text using a delimiter

Given below is the view of my Dataframe

Id,user_id
1,glen-max
2,tom-moody

I am trying to split the values in user_id column and store it in a new column.

I am able to split the user_id using the below code.

z = z['user_id'].str.split('-', 1, expand=True)

I would like this split column to be part of my original Dataframe.

Given below is the expected format of the Dataframe

 Id,user_id,col1,col2
 1,glen-max,glen,max
 2,tom-moody,tom,moody

Could anyone help how I could make it part of the original Dataframe. Tnx..

Upvotes: 1

Views: 72

Answers (2)

Rakesh
Rakesh

Reputation: 82765

Using str.split

Ex:

import pandas as pd

df = pd.read_csv(filename, sep=",")
df[["col1","col2"]] = df['user_id'].str.split('-', 1, expand=True)
print(df)

Output:

   Id    user_id  col1   col2
0   1   glen-max  glen    max
1   2  tom-moody   tom  moody

Upvotes: 2

jezrael
jezrael

Reputation: 862661

General solution is possible multiple -:

df = z.join(z['user_id'].str.split('-', 1, expand=True).add_prefix('col'))
print (df)
   Id    user_id  col0   col1
0   1   glen-max  glen    max
1   2  tom-moody   tom  moody

If always maximal one - is possible use:

z[['col1','col2']] = z['user_id'].str.split('-', 1, expand=True)
print (z)
   Id    user_id  col1   col2
0   1   glen-max  glen    max
1   2  tom-moody   tom  moody

Upvotes: 3

Related Questions