iloc는 Pandas에서 정수 위치(integer-location) 기반 인덱싱을 수행하는 메서드로, 행과 열의 위치를 기준으로 데이터를 선택하거나 수정할 수 있습니다. 이 글에서는 iloc를 활용해 DataFrame에 리스트를 행으로 추가하는 방법을 단계별로 살펴보겠습니다.
예제용 DataFrame 만들기
먼저 실습에 사용할 DataFrame을 생성합니다. 데이터는 팀 랭킹 정보를 담은 리스트 형태로 준비했습니다.
# 팀 랭킹 데이터 (리스트 형태)
Team = [['India', 1, 100], ['Australia', 2, 85], ['England', 3, 75],
['New Zealand', 4, 65], ['South Africa', 5, 50], ['Bangladesh', 6, 40]]
# DataFrame 생성 및 컬럼명 지정
dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points'])
추가할 행 준비하기
DataFrame에 반영할 새로운 행을 리스트로 정의합니다.
myList = ["Sri Lanka", 7, 30]
이제 iloc()를 사용해 이 행을 적용합니다. 인덱스 5는 위치상 6번째 행을 의미하며, 해당 위치의 기존 행이 새로운 값으로 대체됩니다.
dataFrame.iloc[5] = myList
참고: iloc[인덱스] = 값은 기존 위치의 행을 덮어쓰기(교체)하는 동작입니다. 즉, 위 예제에서는 마지막 행이 새로운 데이터로 바뀌게 됩니다. 기존 데이터를 유지한 채 완전히 새로운 행을 맨 아래에 추가하려면 pd.concat()을 사용하는 것이 좋습니다.
전체 예제 코드
다음은 위 과정을 모두 포함한 전체 코드입니다.
import pandas as pd
# 팀 랭킹 데이터 (리스트 형태)
Team = [['India', 1, 100], ['Australia', 2, 85], ['England', 3, 75],
['New Zealand', 4, 65], ['South Africa', 5, 50], ['Bangladesh', 6, 40]]
# DataFrame 생성 및 컬럼명 지정
dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points'])
print("DataFrame...\n", dataFrame)
# 추가할 행 데이터
myList = ["Sri Lanka", 7, 30]
# iloc()를 사용해 해당 위치의 행을 새로운 값으로 교체
# 인덱스 5 = 위치상 6번째 행이 새로운 값으로 대체됩니다.
dataFrame.iloc[5] = myList
# 수정된 DataFrame 출력
print("\niloc으로 행을 교체한 후의 DataFrame...\n", dataFrame)
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
DataFrame...
Country Rank Points
0 India 1 100
1 Australia 2 85
2 England 3 75
3 New Zealand 4 65
4 South Africa 5 50
5 Bangladesh 6 40
iloc으로 행을 교체한 후의 DataFrame...
Country Rank Points
0 India 1 100
1 Australia 2 85
2 England 3 75
3 New Zealand 4 65
4 South Africa 5 50
5 Sri Lanka 7 30
출력 결과를 보면 인덱스 5에 있던 'Bangladesh' 행이 'Sri Lanka' 행으로 성공적으로 교체된 것을 확인할 수 있습니다. 이처럼 iloc를 사용하면 특정 위치의 행 데이터를 간단하고 직관적으로 수정할 수 있습니다.