0
df = pd.DataFrame({'id': [1,2,3,4,5,6,7,8,9,10], 'Col1': ['a','b','c','d','a','b','c','d','a','b'], 'Col2': ['s','t','u','v','w','x','s','t','u','v']})


   id Col1 Col2
0   1   a   s
1   2   b   t
2   3   c   u
3   4   d   v
4   5   a   w
5   6   b   x
6   7   c   s
7   8   d   t
8   9   a   u
9   10  b   v

I want to get something like this

   id Col1 Col2
0   1   a   s
1   5   a   w
2   9   a   u
3   2   b   t
4   6   b   x
5   10  b   v
6   3   c   u
7   7   c   s
8   4   d   v
9   8   d   t

I have searched over stackoverflow with groupby keyword and i can't find a problem which is similar to mine.

Emon
  • 63
  • 9

1 Answers1

2
print( df.sort_values(['Col1', 'id', 'Col2'], ignore_index=True) )

Prints:

   id Col1 Col2
0   1    a    s
1   5    a    w
2   9    a    u
3   2    b    t
4   6    b    x
5  10    b    v
6   3    c    u
7   7    c    s
8   4    d    v
9   8    d    t
Andrej Kesely
  • 168,389
  • 15
  • 48
  • 91