Based on python, sort descending dataframe with pandas:
Given:
from pandas import DataFrame
import pandas as pd
d = {'x':[2,3,1,4,5],
'y':[5,4,3,2,1],
'letter':['a','a','b','b','c']}
df = DataFrame(d)
df then looks like this:
df:
letter x y
0 a 2 5
1 a 3 4
2 b 1 3
3 b 4 2
4 c 5 1
I would like to have something like:
f = lambda x,y: x**2 + y**2
test = df.sort(f('x', 'y'))
This should order the complete dataframe with respect to the sum of the squared values of column 'x' and 'y' and give me:
test:
letter x y
2 b 1 3
3 b 4 2
1 a 3 4
4 c 5 1
0 a 2 5
Ascending or descending order does not matter. Is there a nice and simple way to do that? I could not yet find a solution.
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…