Sorting Dataframe By Multiple Values
Generating random data.
import pandas as pd
import numpy as np
sample_df = pd.DataFrame({'x-val':[1,1,1,2,2,2], 'y-val':np.random.rand(6), 'z-val':np.random.rand(6)})
sample_df
| x-val | y-val | z-val | |
|---|---|---|---|
| 0 | 1 | 0.866973 | 0.074644 |
| 1 | 1 | 0.945542 | 0.239148 |
| 2 | 1 | 0.451685 | 0.073848 |
| 3 | 2 | 0.100797 | 0.684813 |
| 4 | 2 | 0.105647 | 0.054043 |
| 5 | 2 | 0.110734 | 0.830431 |
Implementing sorting of x-val and y-val where x-val is descending and y-val is ascending
sample_df.sort_values(by=['x-val', 'y-val'], ascending=[False, True])
| x-val | y-val | z-val | |
|---|---|---|---|
| 3 | 2 | 0.100797 | 0.684813 |
| 4 | 2 | 0.105647 | 0.054043 |
| 5 | 2 | 0.110734 | 0.830431 |
| 2 | 1 | 0.451685 | 0.073848 |
| 0 | 1 | 0.866973 | 0.074644 |
| 1 | 1 | 0.945542 | 0.239148 |