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

Python에서 append()로 Pandas DataFrame에 리스트 추가하는 방법

Pandas에서 append() 메서드를 사용하면 기존 DataFrame에 리스트 형태의 새로운 행을 손쉽게 추가할 수 있습니다. 이번 글에서는 팀 랭킹 데이터를 예제로 삼아, DataFrame 생성부터 행 추가까지의 과정을 단계별로 살펴보겠습니다.

1단계: DataFrame 생성하기

먼저 팀 랭킹 정보가 담긴 리스트를 바탕으로 DataFrame을 만들고, 각 열의 이름을 지정합니다.

# 팀 랭킹 데이터 (리스트 형태)
Team = [['India', 1, 100],['Australia', 2, 85],['England', 3, 75],['New Zealand', 4, 65],['South Africa', 5, 50]]

# DataFrame 생성 및 열 이름 지정
dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points'])

2단계: 추가할 행 준비하기

이번 예제에서는 다음과 같은 새로운 행을 추가한다고 가정해 보겠습니다.

myList = [["Sri Lanka", 6, 40]]

3단계: append()로 행 추가하기

append() 메서드를 사용하여 위 리스트를 DataFrame에 추가합니다. 이때 ignore_index=True 옵션을 설정하면 기존 인덱스를 무시하고 0부터 시작하는 연속된 새 인덱스가 자동으로 부여됩니다.

dataFrame = dataFrame.append(pd.DataFrame(myList, columns=['Country', 'Rank', 'Points']), ignore_index=True)

전체 예제 코드

지금까지의 과정을 하나로 합친 전체 코드는 다음과 같습니다.

import pandas as pd

# 팀 랭킹 데이터 (리스트 형태)
Team = [['India', 1, 100],['Australia', 2, 85],['England', 3, 75],['New Zealand', 4, 65],['South Africa', 5, 50]]

# DataFrame 생성 및 열 이름 지정
dataFrame = pd.DataFrame(Team, columns=['Country', 'Rank', 'Points'])

print("DataFrame...\n", dataFrame)

# 추가할 행
myList = [["Sri Lanka", 6, 40]]

# 리스트 형태의 행을 DataFrame에 추가
dataFrame = dataFrame.append(pd.DataFrame(myList, columns=['Country', 'Rank', 'Points']), ignore_index=True)

# 업데이트된 DataFrame 출력
print("\n행 추가 후 업데이트된 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

행 추가 후 업데이트된 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      6       40

참고: append()는 더 이상 권장되지 않습니다

Pandas 1.4 버전부터 append() 메서드는 지원이 중단(deprecated)되었으며, Pandas 2.0부터는 완전히 제거되었습니다. 따라서 최신 버전의 Pandas를 사용하고 있다면 pd.concat() 함수로 동일한 작업을 수행하는 것이 좋습니다.

# 최신 방식: pd.concat() 사용
new_row = pd.DataFrame([["Sri Lanka", 6, 40]], columns=['Country', 'Rank', 'Points'])
dataFrame = pd.concat([dataFrame, new_row], ignore_index=True)

pd.concat()은 여러 DataFrame을 축(axis)을 기준으로 연결하는 범용 함수로, 행 추가 작업에서도 append()와 동일한 결과를 제공하면서 더 유연하게 활용할 수 있습니다.