Open In App

How to group dataframe rows into list in Pandas Groupby?

Last Updated : 15 Sep, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Suppose you have a Pandas DataFrame consisting of 2 columns and we want to group these columns. In this article, we will discuss the same. 

Creating Dataframe to group Dataframe rows into a list

Python3




# importing pandas as pd
import pandas as pd
 
 
# Create the data frame
df = pd.DataFrame({'column1': ['A', 'B', 'C', 'A', 'C',
                               'C', 'B', 'D', 'D', 'A'],
                   'column2': [5, 10, 15, 20, 25, 30,
                             35, 40, 45, 50]})
# Print the dataframe
df


Output:

 

Group rows into a list in Pandas using apply()

We can use groupby() method on column 1 and apply the method to apply a list on every group of pandas DataFrame.

Python3




# importing pandas as pd
import pandas as pd
 
 
# Create the data frame
df = pd.DataFrame({'column1': ['A', 'B', 'C', 'A', 'C',
                               'C', 'B', 'D', 'D', 'A'],
                   'column2': [5, 10, 15, 20, 25, 30,
                             35, 40, 45, 50]})
 
 
# Use groupby method and apply
# method on the dataframe
df = df.groupby('column1')['column2'].apply(list)
 
# Print the dataframe again
df


Output:

 

Group rows into a list in Pandas using lambda

We can use groupby() method on column 1 and agg() method to apply aggregation, consisting of the lambda function, on every group of pandas DataFrame.

Python3




# importing pandas as pd
import pandas as pd
 
 
# Create the dataframe
df = pd.DataFrame({'column1': ['A', 'B', 'C', 'A', 'C',
                               'C', 'B', 'D', 'D', 'A'],
                   'column2': [5, 10, 15, 20, 25, 30,
                               35, 40, 45, 50]})
 
# Use groupby method and agg method
# with lambda function on the dataframe
df = df.groupby('column1').agg({'column2': lambda x: list(x)})
 
# Print the dataframe again
df


Output:

 

Group rows into a list in Pandas using agg()

We can use the groupby() method on column1, and agg() method to apply the aggregation list, on every group of pandas DataFrame.

Python3




# importing pandas as pd
import pandas as pd
 
 
# Create the data frame
df = pd.DataFrame({'column1': ['A', 'B', 'C', 'A', 'C',
                               'C', 'B', 'D', 'D', 'A'],
                   'column2': [5, 10, 15, 20, 25, 30,
                               35, 40, 45, 50]})
 
# Use groupby method and agg method
# with list as argument on the dataframe
df = df.groupby('column1').agg(list)
 
df


Output:

 

Group rows into a list in Pandas using Pandas tolist

We can use groupby() method on column 1 and agg() method by passing ‘pd.Series.tolist’ as an argument.

Python3




# importing pandas as pd
import pandas as pd
 
 
# Create the data frame
df = pd.DataFrame({'column1': ['A', 'B', 'C', 'A', 'C',
                               'C', 'B', 'D', 'D', 'A'],
                   'column2': [5, 10, 15, 20, 25, 30,
                               35, 40, 45, 50]})
 
# Use groupby method and agg method with
# pd.Series.tolist as argument on the dataframe
df = df.groupby('column1').agg(pd.Series.tolist)
 
df


Output:

 



Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads