我有一个看起来像这样的数据框:
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"]。结果是:
name
["Z", "C", "A"]
company Amazon Apple Yahoo name Z 0 0 150 C 173 0 0 A 0 130 0
我该如何实现?
你可以使用预定义的顺序设置指标reindex像
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)
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)