基于多个列值的功能的DataFrame排序

发布于 2021-01-29 18:05:13

基于python,用pandas排序降序数据框:

鉴于:

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

升序或降序无关紧要。有没有一个简单而好的方法?我找不到解决方案。

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    df.iloc[(df.x 2 + df.y 2).sort_values().index]

    在如何根据字符串索引上的自定义顺序对熊猫数据框进行排序之后



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看