简体   繁体   中英

Pandas DataFrame Groupby sorting issue

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM