Python | Pandas Split strings into two List/Columns using str.split()

07 May, 2019
Pandas provide a method to split string around a passed separator/delimiter. After that, the string can be stored as a list in a series or it can also be used to create multiple column data frames from a single separated string.
It works similarly to the Python’s default split() method but it can only be applied to an individual string. Pandas <code>str.split() method can be applied to a whole series. .str has to be prefixed everytime before calling this method to differentiate it from the Python’s default function otherwise, it will throw an error.
Syntax: Series.str.split(pat=None, n=-1, expand=False)
Parameters:
pat: String value, separator or delimiter to separate string at.n: Numbers of max separations to make in a single string, default is -1 which means all.expand: Boolean value, returns a data frame with different value in different columns if True. Else it returns a series with list of strings.
Return Type: Series of list or Data frame depending on expand Parameter
To download the CSV used in code, click here.
In the following examples, the data frame used contains data of some NBA players. The image of data frame before any operations is attached below.
 
Example #1: Splitting string into list
In this data, the split function is used to split the Team column at every “t”. The parameter is set to 1 and hence, the maximum number of separations in a single string will be 1. The expand parameter is False and that is why a series with List of strings is returned instead of a data frame.
# importing pandas module import pandas as pd    # reading csv file from url data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")   # dropping null value columns to avoid errorsdata.dropna(inplace = True)   # new data frame with split value columnsdata["Team"]= data["Team"].str.split("t", n = 1, expand = True)  # df displaydata
Output:As shown in the output image, the Team column is now having a list. The string was separated at the first occurrence of “t” and not on the later occurrence since the n parameter was set to 1 (Max 1 separation in a string). Example #2: Making separate columns from string
In this example, the Name column is separated at space (” “), and the expand parameter is set to True, which means it will return a data frame with all separated strings in different columns. The Data frame is then used to create new columns and the old Name column is dropped using .drop() method.
# importing pandas module import pandas as pd   # reading csv file from url data = pd.read_csv("https://media.geeksforgeeks.org/wp-content/uploads/nba.csv")  # dropping null value columns to avoid errorsdata.dropna(inplace = True)  # new data frame with split value columnsnew = data["Name"].str.split(" ", n = 1, expand = True)  # making separate first name column from new data framedata["First Name"]= new[0]  # making separate last name column from new data framedata["Last Name"]= new[1]  # Dropping old Name columnsdata.drop(columns =["Name"], inplace = True)  # df displaydata
Output:As shown in the output image, a new data frame was returned by the split() function and it was used to create two new columns ( First Name and Last Name) in the data frame.
New Data frame Data frame with Added columns
Akanksha_Rai
Python pandas-series
Python pandas-series-methods
Python-pandas
Python
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Python Dictionary
Different ways to create Pandas Dataframe
Enumerate() in Python
Python String | replace()
How to Install PIP on Windows ?
*args and **kwargs in Python
Python Classes and Objects
Convert integer to string in Python
Python OOPs Concepts
Python | os.path.join() method