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

如何基于Pandas数据框中的列表对索引行进行重新排序

闾丘冠玉
2023-03-14
问题内容

我有一个看起来像这样的数据框:

company  Amazon  Apple  Yahoo
name
A             0    130      0
C           173      0      0
Z             0      0    150

它是使用以下代码创建的:

import pandas as pd
df = pd.DataFrame({'name' : ['A', 'Z','C'],
                   'company' : ['Apple', 'Yahoo','Amazon'],
                   'height' : [130, 150,173]})

df = df.pivot(index="name", columns="company", values="height").fillna(0)

我要做的是name根据预定义的列表对行(带有索引)进行排序["Z", "C", "A"]。结果是:

company  Amazon  Apple  Yahoo
name
Z             0      0    150
C           173      0      0
A             0    130      0

我该如何实现?


问题答案:

你可以使用预定义的顺序设置指标reindex

In [14]: df.reindex(["Z", "C", "A"])
Out[14]:
company  Amazon  Apple  Yahoo
Z             0      0    150
C           173      0      0
A             0    130      0

但是,如果按字母顺序排列,则可以使用 sort_index(ascending=False)

In [12]: df.sort_index(ascending=False)
Out[12]:
company  Amazon  Apple  Yahoo
name
Z             0      0    150
C           173      0      0
A             0    130      0

如下所示,您需要将其分配给一些变量

In [13]: df = df.sort_index(ascending=False)


 类似资料:
  • 问题内容: 我有一个数据框。 我想选择在所有指数是 不是 在列表中, 现在,我使用列表理解来创建所需的标签以进行切片。 工作正常,但如果我经常需要这样做可能会很笨拙。 有一个更好的方法吗? 问题答案: 在索引上使用并反转布尔索引以执行标签选择:

  • 我有一个,有200多列。问题在于订单生成时 我需要对这些列进行如下排序: 我有办法在Python中做到这一点吗?

  • 这个(非常基本的)问题是这里交流的结果。 的文档说明: setkey()对数据进行排序。表并将其标记为已排序。排序列是关键。键可以是任何顺序的任何列。列始终按升序排序。该表通过引用…(增加强调)进行了更改 我一直将此解释为创建索引,而不是物理地重新排列数据表的行(类似于索引数据库表)。但是如果这是真的,那么删除键(使用)应该删除索引并将数据表恢复到其原始的未排序顺序。这不是发生的事情: 所以两个问

  • 问题内容: 第一次尝试熊猫,我试图先按照索引对数据透视表进行排序,然后再对一系列值进行排序。 到目前为止,我已经尝试过: 按索引然后按值对数据透视表进行排序的正确方法是什么? 问题答案: 这是一个可以做您想要的解决方案: 结果将如下所示: 将其作为API方法内置到熊猫中会很好。虽然不确定应该是什么样。

  • 问题内容: 我想对以下数据框进行排序: 我想对它进行排序,以便根据列表对LSE列进行重新排序: 当然,其他列也需要相应地重新排序。有没有办法在熊猫里做到这一点? 问题答案: pandas0.15版中对s的改进支持使您可以轻松做到这一点: 如果这只是临时排序,则可能不希望将LSE列保留为a ,但是如果您希望这种排序能够在不同的上下文中使用几次,则是一个很好的解决方案。 在更高版本的,中,已被替换为,

  • 我有一只这样的熊猫 我如何根据集合(例如)中的值对其进行排序 设置顺序=('1','3','2','4') 产量 谢谢