w3resource

Pandas: Split a given dataframe into groups and list all the keys from the GroupBy object


16. Listing GroupBy Object Keys

Write a Pandas program to split a given dataframe into groups and list all the keys from the GroupBy object.

Test Data:

   school_code class            name date_Of_Birth   age  height  weight 
S1        s001     V  Alberto Franco     15/05/2002   12     173      35   
S2        s002     V    Gino Mcneill     17/05/2002   12     192      32   
S3        s003    VI     Ryan Parkes     16/02/1999   13     186      33   
S4        s001    VI    Eesha Hinton     25/09/1998   13     167      30   
S5        s002     V    Gino Mcneill     11/05/2002   14     151      31   
S6        s004    VI    David Parkes     15/09/1997   12     159      32 

Sample Solution:

Python Code :

import pandas as pd
pd.set_option('display.max_rows', None)
#pd.set_option('display.max_columns', None)
df = pd.DataFrame({
    'school_code': ['s001','s002','s003','s001','s002','s004'],
    'class': ['V', 'V', 'VI', 'VI', 'V', 'VI'],
    'name': ['Alberto Franco','Gino Mcneill','Ryan Parkes', 'Eesha Hinton', 'Gino Mcneill', 'David Parkes'],
    'date_Of_Birth ': ['15/05/2002','17/05/2002','16/02/1999','25/09/1998','11/05/2002','15/09/1997'],
    'age': [12, 12, 13, 13, 14, 12],
    'height': [173, 192, 186, 167, 151, 159],
    'weight': [35, 32, 33, 30, 31, 32],
    'address': ['street1', 'street2', 'street3', 'street1', 'street2', 'street4']},
    index=['S1', 'S2', 'S3', 'S4', 'S5', 'S6'])
print("Original DataFrame:")
print(df)
print("\nSplit the data on school_code:");
gp = df.groupby('school_code')
print("\nList of all the keys:")
print(gp.groups.keys())

Sample Output:

Original DataFrame:
   school_code class            name   ...    height  weight  address
S1        s001     V  Alberto Franco   ...       173      35  street1
S2        s002     V    Gino Mcneill   ...       192      32  street2
S3        s003    VI     Ryan Parkes   ...       186      33  street3
S4        s001    VI    Eesha Hinton   ...       167      30  street1
S5        s002     V    Gino Mcneill   ...       151      31  street2
S6        s004    VI    David Parkes   ...       159      32  street4

[6 rows x 8 columns]

Split the data on school_code:

List of all the keys:
dict_keys(['s001', 's002', 's003', 's004'])

For more Practice: Solve these Related Problems:

  • Write a Pandas program to group the dataframe by a specified column and then list all the keys of the resulting GroupBy object.
  • Write a Pandas program to group a dataframe and then extract and print the group keys as a list.
  • Write a Pandas program to split a dataframe into groups and then use the groups attribute to list all group identifiers.
  • Write a Pandas program to group by a column and then validate the GroupBy object by iterating over its keys.

Go to:


Previous: Write a Pandas program to split the following dataframe into groups and count unique values of 'value' column.
Next: Write a Pandas program to split a given dataframe into groups and create a new column with count from GroupBy.

Python Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.