Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 loc을 사용해 Pandas DataFrame에 리스트 추가하는 방법

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()을 사용하는 것이 권장됩니다.