python の for 文の回し方。リスト、辞書、pandas、ほか

いわゆる “イテラブル” なオブジェクトは for 文で回せますが、リストのように値だけのもの、辞書のようにキーと値を持つものなど、対象とするオブジェクトによって方法に少し違いがあります。

その違いを、リスト、辞書、Series、DataFrame、ジェネレータ、イテレータについて見ていきます。

リスト

python のリスト、numpy のリストのまわし方は同じです。

enumerate

インデックスも必要な場合は enumerate 関数を使います。

辞書

辞書の場合、キーと値があるので

  • キーと値 が必要なら → items メソッド
  • キーだけ が必要なら → keys メソッド
  • 値だけ  が必要なら → values メソッド

を使います。

Series

インデックスと値 を取り出す場合は iteritems メソッドを使います。
インデックス だけなら index 属性で取得できます。
Series のオブジェクトを直接 for でまわすと が取り出せます。

DataFrame

DataFrame は 2次元データなので、for文を縦方向にループさせる場合と横方向にループさせる場合で方法が異なります。縦方向は iterrows メソッド、横方向は iteritems メソッドを使います。

ジェネレータ

yield でデータを返すメソッドも for文で扱えます。

イテレータ

__iter__ と next を定義しておけば、クラス内部を for文で走査できます。

コメントはお気軽に