通过单个列搜索具有分层索引的Pandas Dataframe

帕特里克·丹尼斯

我正在使用此数据框:

import pandas as pd
df = pd.DataFrame([['A', 'one',  105], ['A', 'two',  101], ['A', 'three',  103],
                      ['B','one',  101], ['B','two',  1102], ['B','three',  1050]],
                   columns=['c1', 'c2', 'c3'])
df = df.set_index(['c1', 'c2'])
df

哪个返回

               c3
c1    c2    
A     one     105
      two     101
      three   103
B     one     101
      two     1102
      three   1050

...并且我想按列c3排序,保留行和c1排序,以得到此结果:

              c3
c1    c2    
A     one     105
      three   103
      two     101
B     two     1102
      three   1050
      one     101

我无法提出一种不会混淆c1排序的方法。特别是最终df.sort_index()回报KeyError: 'c1'

ky

您可以执行IIUC:

out = (df.sort_values(['c3','c1'],ascending=False)
      .reindex(df.index.get_level_values(0).unique(),level=0))

            c3
c1 c2         
A  one     105
   three   103
   two     101
B  two    1102
   three  1050
   one     101

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将具有分层列索引的大格式pandas DataFrame转换为整齐的格式

来自分类Dev

具有连续索引的Pandas DataFrame

来自分类Dev

在单个索引中通过标签和整数从pandas DataFrame中选择多列

来自分类Dev

通过索引从Pandas DataFrame访问单个值的简洁方法

来自分类Dev

通过索引从Pandas DataFrame访问单个值的简洁方法

来自分类Dev

Pandas Dataframe:将具有列表的行扩展为具有所有列所需索引的多行

来自分类Dev

读取和写入具有多行和多列索引的Pandas DataFrame

来自分类Dev

如何切片具有MultiIndex索引和MultiIndex列的Pandas DataFrame?

来自分类Dev

Pandas DataFrame 索引,选择具有 NaN 值的特定列的行

来自分类Dev

从具有非唯一索引的pandas DataFrame删除行

来自分类Dev

Pandas DataFrame通过列值组合行,其中行可以具有NaN

来自分类Dev

具有Numpy保留索引的索引的DataFrame

来自分类Dev

如何将具有1个主列的Pandas DataFrame对象转换为带有原始DataFrame的索引列的Pandas系列

来自分类Dev

Pandas Dataframe reshaping,通过将列转换为列索引,但保持其余的列索引不变

来自分类Dev

DataFrame.lookup需要具有最新版本Pandas的唯一索引和列

来自分类Dev

遍历并合并具有相同索引,相同列的DataFrame(但是每个DataFrame唯一的几列)

来自分类Dev

通过匹配列值更新DataFrame索引

来自分类Dev

通过保持索引翻转DataFrame列顺序

来自分类Dev

搜索输入值小于下一个索引列值的pandas dataframe列

来自分类Dev

pandas.DataFrame可以具有列表类型列吗?

来自分类Dev

Pandas DataFrame选择具有NaN值的特定列

来自分类Dev

在Pandas DataFrame中选择具有特定值的列

来自分类Dev

如何将具有一列的 Pandas Dataframe 转换为具有两列的 Pandas Dataframe?

来自分类Dev

通过将列转换为单个列中包含的标签来重塑Pandas DataFrame

来自分类Dev

单个DataFrame索引匹配项

来自分类Dev

Pandas DataFrame:如何创建多列索引

来自分类Dev

Pandas DataFrame-查找列的索引值

来自分类Dev

从索引列表创建pandas DataFrame列

来自分类Dev

Pandas DataFrame:按类型过滤列/索引

Related 相关文章

  1. 1

    将具有分层列索引的大格式pandas DataFrame转换为整齐的格式

  2. 2

    具有连续索引的Pandas DataFrame

  3. 3

    在单个索引中通过标签和整数从pandas DataFrame中选择多列

  4. 4

    通过索引从Pandas DataFrame访问单个值的简洁方法

  5. 5

    通过索引从Pandas DataFrame访问单个值的简洁方法

  6. 6

    Pandas Dataframe:将具有列表的行扩展为具有所有列所需索引的多行

  7. 7

    读取和写入具有多行和多列索引的Pandas DataFrame

  8. 8

    如何切片具有MultiIndex索引和MultiIndex列的Pandas DataFrame?

  9. 9

    Pandas DataFrame 索引,选择具有 NaN 值的特定列的行

  10. 10

    从具有非唯一索引的pandas DataFrame删除行

  11. 11

    Pandas DataFrame通过列值组合行,其中行可以具有NaN

  12. 12

    具有Numpy保留索引的索引的DataFrame

  13. 13

    如何将具有1个主列的Pandas DataFrame对象转换为带有原始DataFrame的索引列的Pandas系列

  14. 14

    Pandas Dataframe reshaping,通过将列转换为列索引,但保持其余的列索引不变

  15. 15

    DataFrame.lookup需要具有最新版本Pandas的唯一索引和列

  16. 16

    遍历并合并具有相同索引,相同列的DataFrame(但是每个DataFrame唯一的几列)

  17. 17

    通过匹配列值更新DataFrame索引

  18. 18

    通过保持索引翻转DataFrame列顺序

  19. 19

    搜索输入值小于下一个索引列值的pandas dataframe列

  20. 20

    pandas.DataFrame可以具有列表类型列吗?

  21. 21

    Pandas DataFrame选择具有NaN值的特定列

  22. 22

    在Pandas DataFrame中选择具有特定值的列

  23. 23

    如何将具有一列的 Pandas Dataframe 转换为具有两列的 Pandas Dataframe?

  24. 24

    通过将列转换为单个列中包含的标签来重塑Pandas DataFrame

  25. 25

    单个DataFrame索引匹配项

  26. 26

    Pandas DataFrame:如何创建多列索引

  27. 27

    Pandas DataFrame-查找列的索引值

  28. 28

    从索引列表创建pandas DataFrame列

  29. 29

    Pandas DataFrame:按类型过滤列/索引

热门标签

归档