Home » How to Use the Pandas explode() Function (With Examples)

How to Use the Pandas explode() Function (With Examples)

by Tutor Aspire

You can use the pandas explode() function to transform each element in a list to a row in a DataFrame.

This function uses the following basic syntax:

df.explode('variable_to_explode')

The following example shows how to use this syntax in practice.

Example: Use explode() Function with Pandas DataFrame

Suppose we have the following pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': [['A', 'B', 'C'], ['D', 'E', 'F'], ['G', 'H', 'I']],
                   'position':['Guard', 'Forward', 'Center'],
                   'points': [7, 14, 19]})

#view DataFrame
df

	team	        position  points
0	[A, B, C]	Guard	  7
1	[D, E, F]	Forward	  14
2	[G, H, I]	Center	  19

Notice that the team column contains lists of team names.

We can use the explode() function to explode each element in each list into a row:

#explode team column
df.explode('team')

        team	position  points
0	A	Guard	  7
0	B	Guard	  7
0	C	Guard	  7
1	D	Forward	  14
1	E	Forward	  14
1	F	Forward	  14
2	G	Center	  19
2	H	Center	  19
2	I	Center	  19

Notice that the team column no longer contains lists. We “exploded” each element of each list into a row.

Also notice that some rows now have the same index value.

We can use the reset_index() function to reset the index when exploding the team column:

#explode team column and reset index of resulting dataFrame
df.explode('team').reset_index(drop=True)

	team	position  points
0	A	Guard	  7
1	B	Guard	  7
2	C	Guard	  7
3	D	Forward	  14
4	E	Forward	  14
5	F	Forward	  14
6	G	Center	  19
7	H	Center	  19
8	I	Center	  19

Notice that each row now has a unique index value.

Additional Resources

The following tutorials explain how to perform other common operations in pandas:

How to Split String Column in Pandas into Multiple Columns
How to Split Pandas DataFrame into Multiple DataFrames
How to Split Pandas DataFrame By Column Value

You may also like