Pandasにおける反復処理はアンチパターンであり、他のすべての選択肢を使い果たした場合にのみ行うべきものです。iter "が名前に付いた関数は、数千行以上使うべきではありません。

何かを計算したいのですか？その場合は、次の順序でメソッドを探す：
    1.ベクトル化
    2.Cythonルーチン
    3.リスト内包
    4.DataFrame.apply()
    5.DataFrame.itertuples() と DataFrame.iteritems()
    6.DataFrame.iterrows()

iterrowsとiteruplesは、逐次処理のための行オブジェクト／ネームタプルの生成など、非常に稀な状況で使用されるべきです。

多くの基本的な演算や計算は、pandasによって "ベクトル化 "されます（NumPyやCython化された関数によって）。これには、算術演算、比較、（ほとんどの）削減、リシェーピング、結合、groupby演算などが含まれます。
Iteration in Pandas is an anti-pattern and is something you should only do when you have exhausted every other option. You should not use any function with "iter" in its name for more than a few thousand rows or you will have to get used to a lot of waiting.

Do you want to compute something? In that case, search for methods in this order:
    1. Vectorization
    2. Cython routines
    3. List Comprehensions
    4. DataFrame.apply()
    5. DataFrame.itertuples() and DataFrame.iteritems()
    6. DataFrame.iterrows()

iterrows and itertuples should be used in very rare circumstances, such as generating row objects/nametuples for sequential processing, which is really the only thing these functions are useful for.

A good number of basic operations and computations are "vectorized" by pandas (either through NumPy, or through Cythonized functions). This includes arithmetic, comparisons, (most) reductions, reshaping, joins, and groupby operations.