import pandas as pd
records = [
{"a": 10, "b": 22},
{"a": 11, "b": 21},
{"a": 60, "b": 200},
{"a": 70, "b": 40},
{"a": 10, "b": 30},
]
def sort(c):
# TODO
df = pd.DataFrame.from_records(records)
df.sort_values(["a", "b"], ascending=[True, False], inplace=True, key=sort)
print(df.head())
Prints
a b
4 10 30
0 10 22
1 11 21
2 60 200
3 70 40
I want to sort the dataframe by the two columns at the same time - not necessarily respecting data integrity; for example, the result of column b
should be on the top because of its value, which is 200. sort_values
will prioritize the columns in the given order but I want to sort each column individually.
I know I can have a custom function for sorting, but which algorithm should I use in this case?