为什么在Pandas Series上调用.sort()函数就地对其值进行排序并且什么都不返回?

met*_*eto 11 python python-3.x pandas

对不起我觉得我遗漏了一些非常基本的东西:

>>> Series([3,4,0,3]).sort()
Run Code Online (Sandbox Code Playgroud)

输出无,而

>>> Series([3,4,0,3]).order()
2    0
0    3
3    3
1    4
dtype: int64
Run Code Online (Sandbox Code Playgroud)

sort()我缺少什么?

谢谢

编辑:

谢谢你的回答,我现在意识到这是在排序.但我不明白为什么

>>> s = Series([3,4,0,3]).sort()
>>> s
Run Code Online (Sandbox Code Playgroud)

不返回已排序的系列.如果我理解手册,它应该返回按顺序排列的系列.

ger*_*rit 4

.sort()就地排序。

这意味着在您调用 后.sort(),您现有的数组已排序。它不返回任何内容。

以“核心”Python 为例:

In [175]: L = [2, 3, 1, 5]

In [176]: L.sort()

In [177]: print(L)
[1, 2, 3, 5]
Run Code Online (Sandbox Code Playgroud)

正如Pandas.sort所记录的那样,Pandas 也是如此:

按值对值和索引标签进行就地排序。为了与 ndarray API 兼容。无返回值

另请参阅:Series.sort() 和 Series.order() 之间有什么区别?