Pandas의 loc은 레이블(label) 또는 불리언 배열을 기준으로 행과 열에 접근할 수 있게 해주는 강력한 인덱싱 도구입니다. 이 속성을 활용하면 리스트 형태의 새로운 데이터를 기존 DataFrame의 마지막 행으로 아주 간편하게 추가할 수 있습니다.
1. 예제용 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'])
2. 추가할 리스트 준비
새롭게 추가할 행 데이터를 다음과 같이 리스트로 준비합니다.
myList = ["Sri Lanka", 7, 30]
3. loc()으로 리스트를 새로운 행으로 추가
len(dataFrame)은 현재 DataFrame의 행 개수를 반환합니다. 이 값을 인덱스로 사용하면 항상 마지막 위치에 새로운 행이 추가됩니다.
dataFrame.loc[len(dataFrame)] = myList
전체 예제 코드
지금까지의 내용을 하나로 정리한 전체 코드는 다음과 같습니다.
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...")
print(dataFrame)
# 추가할 행 데이터
myList = ["Sri Lanka", 7, 30]
# loc()을 사용해 리스트를 새로운 행으로 추가
dataFrame.loc[len(dataFrame)] = myList
# 업데이트된 DataFrame 출력
print("\nloc으로 행을 추가한 후의 DataFrame...")
print(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
loc으로 행을 추가한 후의 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
6 Sri Lanka 7 30
핵심 정리
df.loc[len(df)] = 리스트형태로 작성하면 해당 리스트가 DataFrame의 마지막 행으로 추가됩니다.- 추가할 리스트의 요소 개수는 반드시 DataFrame의 컬럼 개수와 일치해야 합니다.
- 참고로 최신 버전의 Pandas에서는
append()메서드가 제거되었기 때문에, 단일 행을 추가할 때는loc, 여러 행을 한 번에 추가할 때는pd.concat()을 사용하는 것이 권장됩니다.