API · Pandas
Pandas Series.tolist() 関数
Series.tolist() は、Series の値を Python のリストとして返します。
このページの内容
Series.tolist() は、pandas の Series の値を Python のリストとして返します。引数を指定せずに series.tolist() と呼び出します。通常のリストを必要とするコードに値を渡す場合や、Series 固有の表示形式を使わずに値を確認したい場合に便利です。
Seriesの値をリストとして取得する
Series オブジェクトに対してメソッドを呼び出し、その戻り値を保持します。この呼び出しで元の Series は変更されません。
values = series.tolist()
このメソッドにパラメーターはありません。戻り値は、Series の値を元の順序で格納した Python の list です。戻り値のリストは別のコンテナーなので、リストを変更しても Series は変わりません。値そのものは通常の Python の動作に従います。変更可能なオブジェクトの場合、両方のコンテナーが同じオブジェクトを参照することがあります。
返されるリストを理解する
Series にはリストより多くの構造があります。インデックスラベルと dtype は Series の情報ですが、tolist() が返すのは値だけです。インデックスラベルはリストの要素に含まれず、Python のリストには pandas の dtype もありません。ラベルも必要な場合は別の操作で取得してください。後続のコードがインデックスや pandas 固有の動作に依存する場合は、Series のまま使います。
リストの長さは、欠損データを表す値も含め、Series の値の個数と一致します。値の順序も Series と同じです。Series の作成時に pandas が dtype を選ぶため、数値が変換前にすでに型変換されている場合があります。tolist() は元の入力型を復元するのではなく、その Series に格納されている値を返します。
数値型と文字列型の Series からリストを取得する
次の例を実行します。
このセクションのコードと表示されるラベルや出力は英語のままです。
import pandas as pd
scores = pd.Series([88, 91, 76], index=["Mia", "Noah", "Ava"])
names = pd.Series(["Rose", "Jasmine", "Tulip"])
score_list = scores.tolist()
name_list = names.tolist()
print(score_list)
print(name_list)
print(isinstance(score_list, list))
print(score_list == [88, 91, 76])
[88, 91, 76]
['Rose', 'Jasmine', 'Tulip']
True
True
どちらの呼び出しも、引数なしで同じメソッドを使います。数値型の Series にはラベルがありますが、変換後のリストに含まれるのは値だけです。文字列型の Series からは、元の順序のまま文字列のリストが返されます。
Pythonで結果を確認する
後続のコードでリストが必要な場合は isinstance(result, list) を使い、内容を確認する場合は result を期待する値と比較します。この例では両方を確認しています。型のチェックでコンテナーを確認し、等価性のチェックで数値とその順序を確かめます。同じ確認は name_list にも適用でき、たとえば ['Rose', 'Jasmine', 'Tulip'] と比較できます。
結果が期待と異なる場合は、変換前に print(series) で Series を表示し、インデックスと dtype を確認してください。そうすることで、Series の作成時点ですでに変わっていた値と、変換時に起きたことを区別しやすくなります。簡単に変換する場合の呼び出しは Series.tolist() です。結果を検証したり別の関数に渡したりする場合は、戻り値を変数に代入します。