Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to print a groupby object

Tags:

python

pandas

I want to print the result of grouping with Pandas.

I have a dataframe:

import pandas as pd df = pd.DataFrame({'A': ['one', 'one', 'two', 'three', 'three', 'one'], 'B': range(6)}) print(df)         A  B 0    one  0 1    one  1 2    two  2 3  three  3 4  three  4 5    one  5 

When printing after grouping by 'A' I have the following:

print(df.groupby('A'))  <pandas.core.groupby.DataFrameGroupBy object at 0x05416E90> 

How can I print the dataframe grouped?

If I do:

print(df.groupby('A').head()) 

I obtain the dataframe as if it was not grouped:

             A  B A                 one   0    one  0       1    one  1 two   2    two  2 three 3  three  3       4  three  4 one   5    one  5 

I was expecting something like:

             A  B A                 one   0    one  0       1    one  1       5    one  5 two   2    two  2 three 3  three  3       4  three  4 
like image 756
user3465658 Avatar asked Mar 27 '14 14:03

user3465658


People also ask

How do I turn a Groupby object into a list in Python?

By using DataFrame. gropby() function you can group rows on a column, select the column you want as a list from the grouped result and finally convert it to a list for each group using apply(list).

What can you do with a Groupby object?

Pandas' groupby() allows us to split data into separate groups to perform computations for better analysis.

What is a Groupby object Python?

What is the GroupBy function? Pandas' GroupBy is a powerful and versatile function in Python. It allows you to split your data into separate groups to perform computations for better analysis.


1 Answers

Simply do:

grouped_df = df.groupby('A')  for key, item in grouped_df:     print(grouped_df.get_group(key), "\n\n") 

Deprecation Notice: ix was deprecated in 0.20.0

This also works,

grouped_df = df.groupby('A')     gb = grouped_df.groups  for key, values in gb.iteritems():     print(df.ix[values], "\n\n") 

For selective key grouping: Insert the keys you want inside the key_list_from_gb, in following, using gb.keys(): For Example,

gb = grouped_df.groups gb.keys()  key_list_from_gb = [key1, key2, key3]  for key, values in gb.items():     if key in key_list_from_gb:         print(df.ix[values], "\n") 
like image 187
Surya Avatar answered Sep 29 '22 09:09

Surya