申し訳ありませんが、ここには非常に基本的なものが欠けていると思います:
>>> 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から例をとるには:
In [175]: L = [2, 3, 1, 5]
In [176]: L.sort()
In [177]: print(L)
[1, 2, 3, 5]
Pandas.sort で説明されているように、パンダも同じです。
値とインデックスラベルを所定の位置に値で並べ替えます。 ndarray 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(ascending = False)と同等
descending = series.sort_values(ascending=False)
インプレース
古いバージョンの.sort()と同等です。
series.sort_values(inplace=True)
_In [1]: import pandas as pd
In [2]: s = pd.Series([3,4,0,3]).sort()
In [3]: s
_
実際、_In [3]
_は何も出力しません。
_In [4]: type(s)
Out[4]: NoneType
_
理由:
pd.Series([3,4,0,3])
確かにa pandas Series
type object、BUT Series.sort()
methodreturn nothinginplaceソートのため、LHSの式s = pd.Series([3,4,0,3]).sort()
、s
はRHSから何も取得しないため、 _In [3]: s
_は何も出力しません。
バージョン0.17.0の後、valueメソッドでソートpandas.Series.sort()
およびpandas.Series.order()
は廃止され、統合pandas.Series.sort_values()
APIに置き換えられました。詳細は this answer を参照してください。
他のほとんどのpython iterablesと同様に、Series.sort()は実際にはシリーズを並べ替えるだけで何も返しません。たとえば、pythonリストの並べ替えを参照してください:
In [2]: foo = [5, 3, 9]
In [3]: foo.sort()
In [4]: foo
Out[4]: [3, 5, 9]