w3resource

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

Pandas Grouping and Aggregating: Split-Apply-Combine Exercise-16 with Solution

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'])

Python Code Editor:


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

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.

What is the difficulty level of this exercise?

Test your Python skills with w3resource's quiz



Python: Tips of the Day

Python: Time library

Time library provides lots of time related functions and methods and is good to know whether you're developing a website or apps and games or working with data science or trading financial markets. Time is essential in most development pursuits and Python's standard time library comes very handy for that.

Let's check out a few simple examples:

moment=time.strftime("%Y-%b-%d__%H_%M_%S",time.localtime())

import time
time_now=time.strftime("%H:%M:%S",time.localtime())
print(time_now)
date_now=time.strftime("%Y-%b-%d",time.localtime())
print(date_now)

Output:

11:36:34
2020-Nov-30