Pandas:使用pd.Series对带有索引的pd.DataFrame进行排序

时间:2013-02-22 04:43:26

标签: python pandas

我正在尝试按另一个按特定顺序排序的系列对DataFrame(axis = 0)进行排序。

实施例: DataFrame包含CountryCodes的索引:'AUS','BWA'....(按字母顺序排序) 系列包含CountryCodes列表及其相关GDP(按GDP排序)

我可以使用DataFrame.join(系列)没有问题,然后对“GDP”列进行排序,然后对del DF ['GDP']进行排序,但有没有一种方法可以直接执行此操作而无需加入结构?

1 个答案:

答案 0 :(得分:4)

您可以通过(已排序)系列的索引reindex

In [1]: df = pd.DataFrame([[1, 2], [3, 4]], index=list('ab'))

In [2]: s = pd.Series([2,1], index=list('ab'))

In [3]: s
Out[3]: 
a    2
b    1

In [4]: s.sort()

In [5]: df.reindex(s.index)
Out[5]: 
   0  1
b  3  4
a  1  2