Example below... why does this happen and how can I prevent it?
>>> df = pd.DataFrame({'a': list(range(150)), 'b': [1, 2, 3] * 50})
>>> df.sort_values('b').equals(df.sort_values('b').sort_values('b'))
False
>>> df.sort_values('b').head()
a b
0 0 1
39 39 1
42 42 1
45 45 1
132 132 1
>>> df.sort_values('b').sort_values('b').head()
a b
0 0 1
87 87 1
120 120 1
84 84 1
81 81 1