鉴于:
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然后看起来像这样:
df:
letter x y
0 a 2 5
1 a 3 4
2 b 1 3
3 b 4 2
4 c 5 1
我想要一些类似的东西:
f = lambda x,y: x**2 + y**2
test = df.sort(f('x', 'y'))
这应该相对于列“ x”和“ y”的平方值的总和来排序完整的数据框,然后给我:
test:
letter x y
2 b 1 3
3 b 4 2
1 a 3 4
4 c 5 1
0 a 2 5
升序或降序无关紧要。有没有一个很好的简单方法来做到这一点?我找不到解决方案。
df.iloc[(df.x ** 2 + df.y **2).sort_values().index]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句