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
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).
Pandas' groupby() allows us to split data into separate groups to perform computations for better analysis.
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.
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")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With