Dev/python
[pandas] 데이터프레임의 행들을 반복문에서 얻고 싶다면, df.iterrows()
bskyvision.com
2023. 1. 14. 19:50
Pandas 데이터프레임을 사용할 때 처음 조금 낯설게 느껴지는 것이 있습니다. 반복문에서 데이터프레임의 행들을 얻고 싶을 때, 본능적으로 다음과 같이 사용하려고 합니다. 하지만, 이렇게 하면 데이터 프레임의 컬럼들만 얻게 됩니다.
잘못된 접근
import pandas as pd
df = pd.DataFrame([[95, 92, 88], [84, 67, 88], [91, 99, 68], [87, 79, 81], [77, 92, 85]],
index=['A', 'B', 'C', 'D', 'E'],
columns=['math', 'english', 'history'],
)
print(df, '\n')
for row in df:
print(row)
옳은 접근
데이터프레임의 행을 하나씩 반복해서 얻고 싶을 때는 df.iterrows()를 사용할 수 있습니다.
import pandas as pd
df = pd.DataFrame([[95, 92, 88], [84, 67, 88], [91, 99, 68], [87, 79, 81], [77, 92, 85]],
index=['A', 'B', 'C', 'D', 'E'],
columns=['math', 'english', 'history'],
)
print(df, '\n')
for idx, row in df.iterrows():
print("행 인덱스: ", idx)
print(row['math'], row['english'], row['history'], '\n')
참고자료
[1] https://ponyozzang.tistory.com/609
[2] https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iterrows.html