Pandasは、データ分析用のライブラリーです。そのため、DataFrameは、データをcolumn単位で一次元行列で持っています。以下のように、DataFrameからforで 1 つずつ取り出すとcloumn名が取り出されます。
python
1for d in df:
2 print(d)
Pandasでは、for文を使うと処理速度が遅いので、通常ベクトル演算使います。もちろん、pandasでも以下のようにiterrows()メソッドを使うと、1行ずつデータを取得することができますが、処理が非常に遅いので普通に使うものではありません。
python
1for d in df.iteritems():
2 print(d)
もし、Pandas でfor文をどうしても使う必要がある場合は、速度を要求される場合は CythonやNumba等を使って処理をするようになります。処理速度である程度妥協できるのであれば、df.apply()を使うか、又は、column単位で取り出すことが容易なので、下のように必要なcolumnだけをzip関数でまとめてforでループにします。iterrows()を使うよりもかなり速いです。PandasでもSeriesの場合は、for文で各要素を取り出すことができます。
for a, b in zip(df['a'], df['b']):
print(a, b)
拡張for文と言っているのでJavaかC++の世界を知っていると思われますが、本当にfor文が必要な処理であれば、Pandasを使うよりもJavaやC++の方が処理に遥かに向いています。