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
# 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.
# 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.
# 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.
# 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.
# 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: