環境
- pandas 2.0.3
- Python 3.12.4
内容
pandas.Series
オブジェクトから、ソートされた一意な値のlistを取得する関数を書きました。
def get_sorted_unique_values(ser: pandas.Series) -> list[float]:
ser.unique().sort_values().to_list()
実行すると、以下のエラーが発生しました。
E AttributeError: 'numpy.ndarray' object has no attribute 'sort_values'
pandas.Series.unique はpandas.Sereis
を返すことを期待していましたが、実際は numpy array を返しました。
The unique values returned as a NumPy array.
pandas.Series
の世界でコードを書くならば、pandas.Series.drop_duplicates
を使った方が良いようです。
Series.drop_duplicates : Return Series with duplicate values removed.
unique : Top-level unique method for any 1-d array-like object.
Index.unique : Return Index with unique values from an Index object.
参考サイト
もともとunique
があって、あとからSeriesを返すdrop_duplicated
ができたようです。