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
'Dev > python' 카테고리의 다른 글
[python] 비공개 속성, 게터, 세터, @property (0) | 2023.01.26 |
---|---|
[python] 약수 구하는 알고리즘 (0) | 2023.01.26 |
[python] 클래스 안에 __로 시작하고 __로 끝나는 메소드들, 매직 메소드(magic method) (0) | 2023.01.25 |
[python] 제너레이터의 필요성(메모리 효율성) (0) | 2023.01.16 |
[python] *args, **kwargs란? (0) | 2023.01.13 |
[python] 두 개의 리스트를 동시에 이터레이션하려면 zip 함수 사용 (0) | 2023.01.13 |
[python] 문자열에서 .exe 실행파일명만 추출하기(정규식) (0) | 2023.01.11 |
[python] 문자열에서 010-1234-5678 형태의 전화번호만 추출하기(정규식) (0) | 2023.01.11 |