当前位置: 首页 > 面试题库 >

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

宇文修文
2023-03-14
问题内容

基于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

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


问题答案:

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

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



 类似资料:
  • 按降序排序的LinkedHashSet的输出。 对不起,如果这是混淆,我不知道如何去排序像这样。

  • 我将如何从从excel文件创建的Dataframe中提取列与特定值匹配的行? 以下是Dataframe中的几行: 这是我用来读取excel文件的代码,选择我需要的列并适当地重命名它们: 到目前为止,根据诸如这个、这个或这里的答案,我只能返回第一个索引,其中Food=“Total fruit”。当我尝试上述其他方法时,我只得到列名,例如: 我对熊猫不熟悉,看不出哪里出了问题。为什么我可以提取第一行食

  • 问题内容: 该文档展示了如何使用输出列名称作为键的字典一次在groupby对象上应用多个功能: 但是,这仅适用于Series groupby对象。同样,当将字典类似地传递到groupby DataFrame时,它期望键是将应用该函数的列名。 我想做的是对多个列应用多个功能(但是某些列将被多次操作)。同样,某些函数将依赖于groupby对象中的其他列(如sumif函数)。我当前的解决方案是逐列进行操

  • 所以这个问题已经嘲弄我好几天了。如有任何帮助,不胜感激!我制作了一个LinkedHashMap,它存储字符串每个部分的可能组合,我试图在字符串的ArrayList中获得所有排列,同时维护字符串顺序。例如,如果映射为:A=ab,B=C,则组合为:ab ac abb abc

  • 我需要根据其中一个列的条件交换多个列的值,并使用API而不是sparkQL 我有一个包含列 [A,B,C,X,Y,Z] 的数据帧,并且它具有具有以下模式的行: (1,2,3,空,空,空),< br> (3,3,3,空,空,空),< br >(空,空,空,5,3,2),< br> (3,1,1,空,空),< br >(空,空,空,3,4,1) 当任何行具有列A中的值为空的条件时,我想实现列组(a,

  • 问题内容: 可以说我有这样的表: 我想得到的是这样的表: 发生的第一件事是基于column进行排序。 发生的第二件事是基于列的,但仅基于列中具有相同数字的行 在不使用任何数据库引擎的情况下应该如何解决此问题? 问题答案: 通常,通常使用where 是包含所有三个值的类型(例如,“ foo”,第一行的5、0)来执行此操作。 然后,您将编写一个比较在中呈现给它的两个对象的Int1值的,如果给出了明确的