2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

파이썬 pandas의 iterrows 메소드는 어떻게 사용하나요?

_____
Q1: pandas의 iterrows() 메소드란 무엇인가요?
A1: iterrows()는 pandas DataFrame의 각 행(row)을 하나씩 반복(iteration)할 수 있게 해주는 메소드입니다. 각 행을 (인덱스, 행 데이터) 형태의 튜플로 반환합니다.

Q2: iterrows() 메소드는 어떻게 사용하나요?
A2: 기본 문법은 다음과 같습니다.
```python
for index, row in df.iterrows():
index : 행 인덱스
row : 해당 행의 Series 객체
print(index, row['컬럼명'])
```

Q3: iterrows()를 사용할 때 주의할 점이 있나요?
A3: iterrows()는 각 행을 Series로 반환하므로, 속도가 느릴 수 있습니다. 대용량 데이터에는 비효율적이며, pandas의 벡터화 연산 사용을 권장합니다.
Q4: iterrows()로 DataFrame의 값을 변경할 수 있나요?
A4: 아닙니다. iterrows()로 반환된 row는 복사본이므로 직접 수정해도 원본 DataFrame에 반영되지 않습니다. 값을 변경하려면 인덱스로 직접 접근해야 합니다.

Q5: iterrows()와 itertuples()의 차이는 무엇인가요?
A5: iterrows()는 각 행을 Series로 반환하는 반면, itertuples()는 namedtuple 형태로 반환하여 속도가 더 빠릅니다. 코드를 더 최적화하려면 itertuples() 사용을 고려해보세요.

Q6: 간단한 예제 코드를 보여주세요.
A6:
```python
import pandas as pd

df = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})

for index, row in df.iterrows():
print(f"Index: {index}, A: {row['A']}, B: {row['B']}")
```
`iterrows` 메소드는 Pandas DataFrame 객체에서 각 행(row)을 반복(iterate)할 수 있도록 해주는 메소드입니다.

이 메소드는 각 행을 인덱스와 Series 객체의 튜플 형태로 반환합니다.

이는 데이터를 한 행씩 처리해야 할 때 유용하게 사용될 수 있습니다.

다만, `iterrows`는 성능이 좋지 않으므로, 대체로 벡터화된 연산을 사용하는 것이 권장됩니다.

사용 예시 다음은 `iterrows`를 사용하는 기본적인 예시입니다.

```python import pandas as pd 예시 DataFrame 생성 data = { '이름': ['Alice', 'Bob', 'Charlie'], '나이': [25, 30, 35], '도시': ['Seoul', 'Busan', 'Incheon'] } df = pd.DataFrame(data) iterrows로 각 행을 반복 for index, row in df.iterrows(): print(f"인덱스: {index}, 이름: {row['이름']}, 나이: {row['나이']}, 도시: {row['도시']}") ``` 출력 결과 ``` 인덱스: 0, 이름: Alice, 나이: 25, 도시: 서울 인덱스: 1, 이름: Bob, 나이: 30, 도시: 부산 인덱스: 2, 이름: Charlie, 나이: 35, 도시: 인천 ``` 주요 사항 1. 성능 : `iterrows`는 각 행을 Series로 변환하기 때문에, 대규모 데이터프레임에서는 성능이 저하되는 문제가 발생할 수 있습니다.

대량의 데이터를 처리할 때는 벡터화된 연산이나 다른 메소드를 사용하는 것이 좋습니다.



2. 읽기 전용 : 반환된 Series 객체는 원래 DataFrame의 데이터를 읽기 전용으로 제공하므로, 이 객체를 수정해도 원래 DataFrame에는 영향을 주지 않습니다.



3. 인덱스 유지 : `iterrows`를 사용할 때, 인덱스는 원래 DataFrame의 인덱스를 유지합니다.

대안 - apply : `apply` 메소드를 사용하여 각 행에 대해 함수를 적용하는 방법이 있습니다.

```python df['새로운_컬럼'] = df.apply(lambda row: row['나이'] + 10, axis=1) ``` - 벡터화 연산 : 가능하면 Pandas의 벡터화 연산을 사용하는 것이 효율적입니다.

```python df['새로운_컬럼'] = df['나이'] + 10 ``` 이처럼 `iterrows`는 특정 상황에서 유용할 수 있지만, 더 빠르고 효율적인 방법들이 존재하므로 필요에 따라 적절한 방법을 선택하는 것이 중요합니다.

작성자: 이채은 [비회원] | 작성일자: 1년 전 2025-02-10 05:31:20
조회수: 159 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.