Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么在Pandas系列上调用.sort()函数对其值进行适当排序,但不返回任何结果?_Python_Python 3.x_Pandas - Fatal编程技术网

Python 为什么在Pandas系列上调用.sort()函数对其值进行适当排序,但不返回任何结果?

Python 为什么在Pandas系列上调用.sort()函数对其值进行适当排序,但不返回任何结果?,python,python-3.x,pandas,Python,Python 3.x,Pandas,对不起,我想我遗漏了一些非常基本的东西: >>> Series([3,4,0,3]).sort() 输出无,而 >>> Series([3,4,0,3]).order() 2 0 0 3 3 3 1 4 dtype: int64 sort()缺少什么 谢谢 编辑: 谢谢你的回答,我现在意识到这是一个适当的分类。但我不明白为什么 >>> s = Series([3,4,0,3]).sort() >>>

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

>>> Series([3,4,0,3]).sort()
输出无,而

>>> Series([3,4,0,3]).order()
2    0
0    3
3    3
1    4
dtype: int64
sort()缺少什么

谢谢

编辑:

谢谢你的回答,我现在意识到这是一个适当的分类。但我不明白为什么

>>> s = Series([3,4,0,3]).sort()
>>> s
不返回已排序的序列。如果我理解,它应该返回已排序的序列

.sort()
就地排序

这意味着在调用
.sort()
后,现有数组已被排序。它不会返回任何东西

以“核心”Python为例:

熊猫也是如此,如以下文件所述:

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


另请参见:

与大多数其他python iTerable一样,Series.sort()实际上不返回任何内容,只对序列进行适当的排序。请参见排序python列表的示例:

In [2]: foo = [5, 3, 9]

In [3]: foo.sort()

In [4]: foo
Out[4]: [3, 5, 9]
实际上,[3]中的
将不输出任何内容,您可以检查:

In [4]: type(s)
Out[4]: NoneType
原因是:

pd.Series([3,4,0,3])
确实返回一个
Series
类型对象,但是
Series.sort()
method由于就地排序,因此不返回任何内容。因此,LHS中的表达式
s=pd.Series([3,4,0,3]).sort()
s
没有从RHS获得任何信息,因此[3]:s中的
没有输出任何信息

请注意: 在版本0.17.0之后,按值进行排序的方法
pandas.Series.sort()
pandas.Series.order()
被弃用,取而代之的是统一的
pandas.Series.sort\u values()
API。有关更多详细信息,请参阅

.sort()order()函数都已弃用 .sort_values()函数是替代函数,下面是如何使用它的示例

例如:

import numpy as np
import pandas as pd

arr = np.array([1,3,4,2])
series = pd.Series(arr)
升序
相当于旧版本中的.order()函数

ascending = series.sort_values() 

降序
相当于.order(升序=假)


到位
相当于旧版本中的.sort()。

series.sort_values(inplace=True) 

基本上是未回答问题的重复。谢谢,它没有出现在搜索结果中。现在,该答案比已接受的答案更正确。在Pandas==0.22 Series下,sort_values()是正确的。对于Pandas,此解决方案已过时,请参阅其他答案。检查我的答案,它显示了Pandas的最新版本,说明如何就地排序系列值或创建排序元素的新系列对象。
ascending = series.sort_values() 
descending = series.sort_values(ascending=False)
series.sort_values(inplace=True)