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

san*_*tle 5 python pandas

我试图按另一个按特定顺序排序的系列对DataFrame(axis = 0)进行排序.

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

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

And*_*den 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
Run Code Online (Sandbox Code Playgroud)