Pandas – Groupby multiple values and plotting results

In this article, we will learn how to groupby multiple values and plotting the results in one go. Here, we take “excercise.csv” file of a dataset from seaborn library then formed different groupby data and visualize the result. 

For this procedure, the steps required are given below :

  • Import libraries for data and its visualization.
  • Create and import the data with multiple columns.
  • Form a grouby object by grouping multiple values.
  • Visualize the grouped data.

Below is the implementation with some examples : 

Example 1 :

In this example, we take the “excercise.csv” file of a dataset from the seaborn library then formed groupby data by grouping two columns “pulse” and “diet” together on the basis of a column “time” and at last visualize the result.



Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# importing packages
import seaborn
  
# load dataset and view
data = seaborn.load_dataset('exercise')
print(data)
  
# multiple groupby (pulse and diet both)
df = data.groupby(['pulse', 'diet']).count()['time']
print(df)
  
# plot the result
df.plot()
plt.xticks(rotation=45)
plt.show()

chevron_right


Output :

    Unnamed: 0  id     diet  pulse    time     kind
0            0   1  low fat     85   1 min     rest
1            1   1  low fat     85  15 min     rest
2            2   1  low fat     88  30 min     rest
3            3   2  low fat     90   1 min     rest
4            4   2  low fat     92  15 min     rest
..         ...  ..      ...    ...     ...      ...
85          85  29   no fat    135  15 min  running
86          86  29   no fat    130  30 min  running
87          87  30   no fat     99   1 min  running
88          88  30   no fat    111  15 min  running
89          89  30   no fat    150  30 min  running

[90 rows x 6 columns]
pulse  diet   
80     no fat     NaN
       low fat    1.0
82     no fat     NaN
       low fat    1.0
83     no fat     2.0
                 ... 
140    low fat    NaN
143    no fat     1.0
       low fat    NaN
150    no fat     1.0
       low fat    NaN
Name: time, Length: 78, dtype: float64

 

Example 2: This example is the modification of the above example for better visualization.

Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# importing packages
import seaborn
  
# load dataset
data = seaborn.load_dataset('exercise')
  
# multiple groupby (pulse and diet both)
df = data.groupby(['pulse', 'diet']).count()['time']
  
# plot the result
df.unstack().plot()
plt.xticks(rotation=45)
plt.show()

chevron_right


Output :

Example 3:



In this example, we take “excercise.csv” file of a dataset from seaborn library then formed groupby data by grouping three columns “pulse”, “diet” , and “time” together on the basis of a column “kind” and at last visualize the result.

Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# importing packages
import seaborn
  
# load dataset and view
data = seaborn.load_dataset('exercise')
print(data)
  
# multiple groupby (pulse, diet and time)
df = data.groupby(['pulse', 'diet', 'time']).count()['kind']
print(df)
  
# plot the result
df.plot()
plt.xticks(rotation=30)
plt.show()

chevron_right


Output :

Unnamed: 0  id     diet  pulse    time     kind
0            0   1  low fat     85   1 min     rest
1            1   1  low fat     85  15 min     rest
2            2   1  low fat     88  30 min     rest
3            3   2  low fat     90   1 min     rest
4            4   2  low fat     92  15 min     rest
..         ...  ..      ...    ...     ...      ...
85          85  29   no fat    135  15 min  running
86          86  29   no fat    130  30 min  running
87          87  30   no fat     99   1 min  running
88          88  30   no fat    111  15 min  running
89          89  30   no fat    150  30 min  running

[90 rows x 6 columns]
pulse  diet     time  
80     no fat   1 min     NaN
                15 min    NaN
                30 min    NaN
       low fat  1 min     1.0
                15 min    NaN
                         ... 
150    no fat   15 min    NaN
                30 min    1.0
       low fat  1 min     NaN
                15 min    NaN
                30 min    NaN
Name: kind, Length: 234, dtype: float64

 

Example 4: This example is the modification of the above example for better visualization.

Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# importing packages
import seaborn
  
# load dataset
data = seaborn.load_dataset('exercise')
  
# multiple groupby (pulse, diet, and time)
df = data.groupby(['pulse', 'diet', 'time']).count()['kind']
  
# plot the result
df.unsatck().plot()
plt.xticks(rotation=30)
plt.show()

chevron_right


Output :


Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.