• Skip to secondary menu
  • Skip to main content
  • Skip to primary sidebar

Python and R Tips

Learn Data Science with Python and R

  • Home
  • Python
  • Pandas
    • Pandas 101
  • tidyverse
    • tidyverse 101
  • R
  • Linux
  • Conferences
  • Python Books
  • About
    • Privacy Policy
You are here: Home / Python / Pandas DataFrame / How to Split a Single Column in Pandas into Multiple Columns

How to Split a Single Column in Pandas into Multiple Columns

November 10, 2018 by cmdlinetips

Often you may have a column in your pandas data frame and you may want to split the column and make it into two columns in the data frame. For example, one of the columns in your data frame is full name and you may want to split into first name and last name (like the figure shown below).
Split a Text Column in Pandas
How To Split a Text Column in Pandas?

We can use Pandas’ string manipulation functions to do that easily. Let us first create a simple Pandas data frame using Pandas’ DataFrame function.

# import Pandas as pd
import pandas as pd
# create a new data frame
df = pd.DataFrame({'Name': ['Steve Smith', 'Joe Nadal',
                            'Roger Federer'],
                 'Age':[32, 34, 36]})
df

Splitting the Original DataFrame’s Single Column into Multiple Columns

We can use Pandas’ str.split function to split the column of interest. Here we want to split the column “Name” and we can select the column using chain operation and split the column with expand=True option.

str.split() with expand=True option results in a data frame and without that we will get Pandas Series object as output.

df.Name.str.split(expand=True,)
          0	 1
0	Steve	Smith
1	Joe	Nadal
2	Roger	Federer

If we want to have the results in the original dataframe with specific names, we can add as new columns like shown below.

df[['First','Last']] = df.Name.str.split(" ",expand=True,)
df

And we will get two new columns in addition to the original data frame.

Age	Name	First	Last
0	32	Steve Smith	Steve	Smith
1	34	Joe Nadal	Joe	Nadal
2	36	Roger Federer	Roger	Federer

Note that we applied str.split method without specifying any specific delimiter. By default, str.split uses a single space as delimiter and we can specify a delimiter as follows. For example, if the text in our column were separated by under score,

df = pd.DataFrame({'Name': ['Steve_Smith', 'Joe_Nadal', 
                           'Roger_Federer'],
                 'Age':[32,34,36]})
df
	Age	Name
0	32	Steve_Smith
1	34	Joe_Nadal
2	36	Roger_Federer

we can use under score as our delimiter to split the column into two columns.

df[['First','Last']] = df.Name.str.split("_",expand=True,)
df
	Age	Name	First	Last
0	32	Steve_Smith	Steve	Smith
1	34	Joe_Nadal	Joe	Nadal
2	36	Roger_Federer	Roger	Federer


Share this:

  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on X (Opens in new window) X

Related posts:

Default ThumbnailHow to Join Two Text Columns into a Single Column in Pandas? How To Split A Column or Column Names in Pandas and Get Part of it? Default ThumbnailHow to Filter a Pandas Dataframe Based on Null Values of a Column? Default ThumbnailHow to Collapse Multiple Columns in Pandas? Groupby with Dictionary

Filed Under: Pandas DataFrame, Python, Split a Text Column in Pandas Tagged With: Python Tips, Split a Text Column in Pandas

Primary Sidebar

Subscribe to Python and R Tips and Learn Data Science

Learn Pandas in Python and Tidyverse in R

Tags

Altair Basic NumPy Book Review Data Science Data Science Books Data Science Resources Data Science Roundup Data Visualization Dimensionality Reduction Dropbox Dropbox Free Space Dropbox Tips Emacs Emacs Tips ggplot2 Linux Commands Linux Tips Mac Os X Tips Maximum Likelihood Estimation in R MLE in R NumPy Pandas Pandas 101 Pandas Dataframe Pandas Data Frame pandas groupby() Pandas select columns Pandas select_dtypes Python Python 3 Python Boxplot Python Tips R rstats R Tips Seaborn Seaborn Boxplot Seaborn Catplot Shell Scripting Sparse Matrix in Python tidy evaluation tidyverse tidyverse 101 Vim Vim Tips

RSS RSS

  • How to convert row names to a column in Pandas
  • How to resize an image with PyTorch
  • Fashion-MNIST data from PyTorch
  • Pandas case_when() with multiple examples
  • An Introduction to Statistical Learning: with Applications in Python Is Here
  • 10 Tips to customize ggplot2 title text
  • 8 Plot types with Matplotlib in Python
  • PCA on S&P 500 Stock Return Data
  • Linear Regression with Matrix Decomposition Methods
  • Numpy’s random choice() function

Copyright © 2025 · Lifestyle Pro on Genesis Framework · WordPress · Log in

Go to mobile version