小编典典

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

python

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

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

我该如何实现?


阅读 225

收藏
2020-12-20

共1个答案

小编典典

你可以使用预定义的顺序设置指标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)
2020-12-20