Python-pandas-iteration
Pythonパンダ-反復
Pandasオブジェクトに対する基本的な反復の動作は、タイプによって異なります。 Seriesを反復処理する場合、それは配列のようなものと見なされ、基本的な反復処理によって値が生成されます。 DataFrameやPanelなどの他のデータ構造は、オブジェクトの keys を反復処理する* dictのような*規則に従います。
要するに、基本的な反復(オブジェクトの i の場合)は次を生成します-
- シリーズ-値
- DataFrame -列ラベル
- パネル-アイテムのラベル
DataFrameの反復
DataFrameを反復すると、列名が与えられます。 同じことを理解するために、次の例を考えてみましょう。
その*出力*は次のとおりです-
DataFrameの行を反復するには、次の関数を使用できます-
- * iteritems()*-(キー、値)のペアを反復処理する
- * iterrows()*-(インデックス、シリーズ)のペアとして行を反復処理する
- * itertuples()*-namedtuplesとして行を反復処理します
iteritems()
各列をキーとして、値のペアをラベルとしてキー、列の値をシリーズオブジェクトとして繰り返します。
その*出力*は次のとおりです-
各列は、シリーズのキーと値のペアとして個別に繰り返されます。
iterrows()
iterrows()は、各インデックス値と各行のデータを含むシリーズを生成するイテレータを返します。
その*出力*は次のとおりです-
注-* iterrows()*は行を反復処理するため、行全体でデータ型を保持しません。 0,1,2は行インデックスであり、col1、col2、col3は列インデックスです。
itertuples()
itertuples()メソッドは、DataFrameの各行に対して名前付きタプルを生成する反復子を返します。 タプルの最初の要素は行の対応するインデックス値であり、残りの値は行の値です。
その*出力*は次のとおりです-
注意-反復中はオブジェクトを変更しないでください。 反復は読み取りを目的としており、反復子は元のオブジェクト(ビュー)のコピーを返すため、変更は元のオブジェクトに反映されません。
その*出力*は次のとおりです-
観察、変更は反映されません。