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

5
我正在尝试按照另一个以特定顺序排序的Series来对DataFrame(轴=0)进行排序。
例如: DataFrame包含CountryCodes索引:'AUS','BWA' ....(按字母顺序排序) Series包含CountryCodes列表及其关联的GDP(按GDP排序)
我可以使用DataFrame.join(Series)并对“GDP”列进行排序,然后删除DF ['GDP'],但是否有一种直接在不连接结构的情况下完成此操作的方法?

您应该提供一个简短的示例数据框(df)、序列(series)和期望的结果,以及一些描述您已经尝试过的代码。 - David Marx
1个回答

4
您可以按照(排序后的)序列的索引进行重新索引
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接