pandas の DataFrame
にはブロードキャストによる演算機能が備わっているため、ほとんどの場合はループ処理を記述する必要はありませんが、明示的にループ処理することも可能です。
行のループ処理 (iterrows)
df.iterrows()
メソッドを使用すると、各行をイテレート処理できます。
import pandas as pd
# サンプルデータ
df = pd.DataFrame({
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35],
"City": ["New York", "San Francisco", "Los Angeles"],
})
# DataFrame の各行をループ処理
for i, row in df.iterrows():
print(f"{i}: Name={row['Name']}, Age={row['Age']}, City={row['City']}")
0: Name=Alice, Age=25, City=New York
1: Name=Bob, Age=30, City=San Francisco
2: Name=Charlie, Age=35, City=Los Angeles
列のループ処理 (items)
df.items()
メソッドを使用すると、各列をイテレート処理できます。
ループごとに、各列のラベル名と Series
オブジェクトのタプルを取得できます(ラベル名は series.name
でも取得できるんですけどね^^)。
import pandas as pd
# サンプルデータ
df = pd.DataFrame({
"Name": ["Alice", "Bob", "Charlie"],
"Age": [25, 30, 35],
"City": ["New York", "San Francisco", "Los Angeles"],
})
# DataFrame の各列をループ処理
for label, series in df.items():
print(f"{label}: {series.values}")
Name: ['Alice' 'Bob' 'Charlie']
Age: [25 30 35]
City: ['New York' 'San Francisco' 'Los Angeles']