Skip to content
Advertisement

Groupby and get the values in one dataframe

I have a dataframe which I need to do groupby by multiple columns and get the items within every group as a row;

enter image description here

I need to output a below table after group;

enter image description here

I have been looking for the answer but I was not able to find any, I appreciate if you can help we with the code.

Advertisement

Answer

You could try this:

import pandas as pd

df = pd.read_csv('data.csv')
groups = ['group1', 'group2', 'group3']
df = df.groupby(groups).apply(lambda a: a.drop(groups, axis=1)[:])

print(df)

Output:

                        itemNo itemName
group1 group2 group3
A      AA     AAA    0    4412      xxx
                     3    9812      yhk
       C      CC     4    4431      alk
B      AA     BB     1    3456      xsc
                     2    4566      thg
User contributions licensed under: CC BY-SA
10 People found this is helpful
Advertisement