-1

I have a data frame in this form. when I'm applying group by its sorting automatically which I don't want, is there a way to do that.

    import pandas as PD

d = {"ABC":["1.iab units (desktop + mobile) + non-expanding adhesion","1.iab units (desktop + mobile) + non-expanding adhesion","1.iab units (desktop + mobile) + non-expanding adhesion",
"2.iab units (desktop + mobile) + non-expanding adhesion","2.iab units (desktop + mobile) + non-expanding adhesion","2.iab units (desktop + mobile) + non-expanding adhesion","10.iab units (desktop + mobile) + non-expanding adhesion","10.iab units (desktop + mobile) + non-expanding adhesion","10.iab units (desktop + mobile) + non-expanding adhesion"],"Number":["361766","4280","275853","275853","73582","4024","8910","568861","85658"]}

data = PD.DataFrame(d)
print data



                                               ABC  Number
0  1.iab units (desktop + mobile) + non-expanding...  361766
1  1.iab units (desktop + mobile) + non-expanding...    4280
2  1.iab units (desktop + mobile) + non-expanding...  275853
3  2.iab units (desktop + mobile) + non-expanding...  275853
4  2.iab units (desktop + mobile) + non-expanding...   73582
5  2.iab units (desktop + mobile) + non-expanding...    4024
6  10.iab units (desktop + mobile) + non-expandin...    8910
7  10.iab units (desktop + mobile) + non-expandin...  568861
8  10.iab units (desktop + mobile) + non-expandin...   85658

while applying a group it gets sorted in this form:

for plc, plc_name in data.groupby('ABC'):
  print plc_name

                                   ABC  Number
0  1.iab units (desktop + mobile) + non-expanding...  361766
1  1.iab units (desktop + mobile) + non-expanding...    4280
2  1.iab units (desktop + mobile) + non-expanding...  275853
                                                 ABC  Number
6  10.iab units (desktop + mobile) + non-expandin...    8910
7  10.iab units (desktop + mobile) + non-expandin...  568861
8  10.iab units (desktop + mobile) + non-expandin...   85658
                                                 ABC  Number
3  2.iab units (desktop + mobile) + non-expanding...  275853
4  2.iab units (desktop + mobile) + non-expanding...   73582
5  2.iab units (desktop + mobile) + non-expanding...    4024

Is there any way not to get sorted on like, I want to sort it like

ABC Number
1.iab units (desktop + mobile) + non-expanding adhesion 361766
1.iab units (desktop + mobile) + non-expanding adhesion 4280
1.iab units (desktop + mobile) + non-expanding adhesion 275853
ABC Number
2.iab units (desktop + mobile) + non-expanding adhesion 8910
2.iab units (desktop + mobile) + non-expanding adhesion 568861
2.iab units (desktop + mobile) + non-expanding adhesion 85658
ABC Number
10.iab units (desktop + mobile) + non-expanding adhesion    346177
10.iab units (desktop + mobile) + non-expanding adhesion    73582
10.iab units (desktop + mobile) + non-expanding adhesion    4024
DKM
  • 1,761
  • 2
  • 19
  • 34
  • 1
    Possible duplicate of [Using pandas.Dataframe.groupby without alphabetical ordering](https://stackoverflow.com/questions/31689149/using-pandas-dataframe-groupby-without-alphabetical-ordering) – harvpan Jul 06 '18 at 15:28
  • @HarvIpan Thanks:) – DKM Jul 06 '18 at 15:32

1 Answers1

2

groupby sort = False

for plc, plc_name in data.groupby('ABC',sort=False):
  print(plc_name)

                                                 ABC  Number
0  1.iab units (desktop + mobile) + non-expanding...  361766
1  1.iab units (desktop + mobile) + non-expanding...    4280
2  1.iab units (desktop + mobile) + non-expanding...  275853
                                                 ABC  Number
3  2.iab units (desktop + mobile) + non-expanding...  275853
4  2.iab units (desktop + mobile) + non-expanding...   73582
5  2.iab units (desktop + mobile) + non-expanding...    4024
                                                 ABC  Number
6  10.iab units (desktop + mobile) + non-expandin...    8910
7  10.iab units (desktop + mobile) + non-expandin...  568861
8  10.iab units (desktop + mobile) + non-expandin...   85658
BENY
  • 317,841
  • 20
  • 164
  • 234