您的问题:这是(Series.sort
就地与就地Series.order
返回新对象)这两种方法之间唯一的区别是什么?
pandas 0.17.0 最终版本之前(即 2015-10-09 之前)
简短回答:是的。它们在功能上是等效的。
较长的答案:
pandas.Series.sort() http://pandas.pydata.org/pandas-docs/version/0.16.2/generated/pandas.Series.order.html#pandas.Series.order:更改对象本身(就地排序),但不返回任何内容。
按值对值和索引标签进行排序。这是一就地排序默认情况下。Series.order
是等价的,但返回一个新的系列。
So
>>> s = pd.Series([3,4,0,3]).sort()
>>> s
什么也不输出。看答案在这里 https://stackoverflow.com/a/33572274/2303761更多细节。
pandas.Series.order() http://pandas.pydata.org/pandas-docs/version/0.16.2/generated/pandas.Series.sort.html#pandas.Series.sort:不更改对象,而是返回一个新的排序对象。
按值对 Series 对象进行排序,维护索引值链接。这会返回一个新系列默认情况下。Series.sort
是等效的,但作为就地方法。
pandas 0.17.0 最终版本之后(即 2015-10-09 之后)
排序的API是changed http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#changes-to-sorting-api,事情变得更干净、更愉快。
排序依据values, both Series.sort()
and Series.order()
are 已弃用,替换为新的Series.sort_values() http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.sort_values.html#pandas.Series.sort_valuesapi,它返回一个排序的 Series 对象。
总结更改(摘自 pandas 0.17.0doc http://pandas.pydata.org/pandas-docs/stable/whatsnew.html#changes-to-sorting-api):
To sort by the values (A * marks items that will show a FutureWarning):
Previous | Replacement
------------------------------|-----------------------------------
* Series.order() | Series.sort_values()
* Series.sort() | Series.sort_values(inplace=True)
* DataFrame.sort(columns=...) | DataFrame.sort_values(by=...)