如何反转 Pandas 中 DataSeries 的排序顺序,以便按降序处理它们?
问问题
11658 次
2 回答
16
In [28]: s = pd.Series([20, 10, 30], ['c', 'a', 'b'])
In [29]: s
Out[29]:
c 20
a 10
b 30
dtype: int64
按索引排序
In [30]: s.sort_index(ascending=False)
Out[30]:
c 20
b 30
a 10
dtype: int64
按值排序
In [31]: s.sort()
In [32]: s[::-1]
Out[32]:
b 30
c 20
a 10
dtype: int64
于 2013-05-07T06:36:24.760 回答
1
我将建议对@Wouter Overmeire的答案进行一些更改:
In []: s = pd.Series([20, 10, 30], ['c', 'a', 'b'])
In []: s
Out[]:
c 20
a 10
b 30
dtype: int64
该pandas.Series.sort()
方法在 Pandas 0.18.1 中已弃用,但现在pandas.Series.sort_values()
可用于(就地或非就地)排序。
s.sort_values()
该sort_values
方法有关键字可以更改为升序或降序:ascending=True
,或不就地排序:inplace=False
。
并且上一个答案的最后一行代码不是用于按值排序,而是从底部开始返回 Series 的切片。切片方法的工作原理如下:
s[start:end:step]
在上一个答案的示例中,切片从开头(开始位置为空)开始,在结尾(结束为空)结束,它采用每个值(绝对值为 1 的步骤)但从系列的底部开始(步骤为减号“-”)
In[]: s[::-1]
Out[]:
b 30
a 10
c 20
dtype: int64
于 2021-11-08T19:18:08.740 回答