Pandas:使用pd.Series对带索引的pd.DataFrame进行排序
我想要根据另一个按特定顺序排序的序列来对一个数据框(DataFrame)进行排序(轴 = 0)。
举个例子:这个数据框包含了国家代码的索引,比如 'AUS'、'BWA' 等等(按字母顺序排序)。而这个序列则包含了一些国家代码及其对应的GDP(按GDP排序)。
我可以用 DataFrame.join(Series) 来解决这个问题,然后再对 'GDP' 这一列进行排序,最后删除 DF['GDP'],但有没有办法直接做到这一点,而不需要先把这两个结构合并在一起呢?
1 个回答
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