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

pandas中的多索引排序

邓业
2023-03-14
问题内容

我在pandas
df中有一个包含多索引列的数据集,我想按特定列中的值进行排序。我尝试使用sortindex和sortlevel,但无法获得所需的结果。我的数据集看起来像:

    Group1    Group2
    A B C     A B C
1   1 0 3     2 5 7
2   5 6 9     1 0 0
3   7 0 2     0 3 5

我想按降序按组1中的C列对所有数据和索引进行排序,因此我的结果如下所示:

    Group1    Group2
    A B C     A B C
 2  5 6 9     1 0 0
 1  1 0 3     2 5 7
 3  7 0 2     0 3 5

是否可以对数据所在的结构进行这种排序,还是应该将Group1交换到索引端?


问题答案:

当按MultiIndex排序时,您需要在列表中包含描述该列的元组*:

In [11]: df.sort_values([('Group1', 'C')], ascending=False)
Out[11]: 
  Group1       Group2      
       A  B  C      A  B  C
2      5  6  9      1  0  0
1      1  0  3      2  5  7
3      7  0  2      0  3  5

*, 以免混淆大熊猫以为您想先按Group1然后按C排序。

注意:最初使用,.sort因为已弃用,然后在0.20中删除,改为.sort_values



 类似资料:
  • 如果我定义一个像这样的分层索引数据框: 内容如下所示: 我知道如何提取与给定列对应的数据。例如。对于列: 如何提取符合以下标准集的数据: , , , column , , 列 和 、、列、以及从开始的所有列 是偶数 (顺便说一句,我做了不止一次rtfm,但我真的觉得难以理解。)

  • 问题内容: 我有以下pd.DataFrame: 它具有带有和层次结构级别的MultiIndex列。该标签从0到n,并为每个标签,有两个和列。 我想子选择此DataFrame的所有(或)列。 问题答案: 有一种方法可以与布尔索引一起使用,以获得预期的结果。

  • 现在,我要检索一个值: Q1:在[3.3,6.6]范围内-预期返回值:[3.3,5.5,6.6]或[3.3,3.3,5.5,6.6](包括最后一个),如果没有,则为[3.3,5.5]或[3.3,3.3,5.5]。 Q2:在[2.0,4.0]范围内-预期返回值:[3.3]或[3.3,3.3] 对于任何其他多索引维度都是相同的,例如B值: Q3:在范围[111,500]中有重复,作为范围中的数据行数-

  • 有两个问题看起来很相似,但它们不是同一个问题:这里和这里。它们都调用的方法,例如或,我知道这会返回一个。我要问的是如何将(class)对象本身转换为。我将在下面举例说明。 构建一个示例,如下所示。 上面的应该如下所示(显然有不同的数字)。 我想做的是按列名称和采取分组(按此顺序),这样我就可以得到一个由列名称和采取构建的多索引索引,如下所示。 我如何实现这一点?如果我做了,那么是一个实例。正确的做

  • 本文向大家介绍在pandas多重索引multiIndex中选定指定索引的行方法,包括了在pandas多重索引multiIndex中选定指定索引的行方法的使用技巧和注意事项,需要的朋友参考一下 在multiIndex中选定指定索引的行 我们在用pandas类似groupby来使用多重index时,有时想要对多个level中的某个index对应的行进行操作,就需要在dataframe中找到该index

  • 本文向大家介绍对Pandas MultiIndex(多重索引)详解,包括了对Pandas MultiIndex(多重索引)详解的使用技巧和注意事项,需要的朋友参考一下 创建多重索引 获得索引信息 get_level_values 基本索引 使用reindex对齐数据 数据准备 s序列加(0~-2)索引的值,因为s[:-2]没有最后两个的索引,所以为NaN.s[::2]意思是步长为1. 以上这篇对P