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

Pandas DataFrame에 딕셔너리 리스트 추가하기 – Python 완벽 가이드

기존 Pandas DataFrame에 딕셔너리 리스트를 추가하려면 append() 메서드를 사용할 수 있습니다. 먼저 예제에 사용할 DataFrame을 생성해 보겠습니다.

dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Audi', 'XUV', 'Lexus', 'Volkswagen'],
        "Place": ['Delhi', 'Bangalore', 'Pune', 'Chandigarh', 'Mumbai'],
        "Units": [100, 150, 50, 110, 90]
    }
)

다음으로, DataFrame에 추가할 딕셔너리 리스트를 만듭니다. 각 딕셔너리는 DataFrame의 열 이름과 동일한 키를 가지고 있어야 합니다.

d = [
    {'Car': 'Mustang', 'Place': 'Hyderabad', 'Units': 60},
    {'Car': 'Tesla', 'Place': 'Kerala', 'Units': 30},
    {'Car': 'RollsRoyce', 'Place': 'Punjab', 'Units': 70},
    {'Car': 'Bentley', 'Place': 'Gujarat', 'Units': 80}
]

이제 append() 메서드를 사용하여 이미 생성된 DataFrame에 딕셔너리 리스트를 추가합니다. 이때 ignore_index=True 옵션을 지정하면 기존 인덱스를 무시하고 새로운 연속 인덱스가 자동으로 부여됩니다.

dataFrame = dataFrame.append(d, ignore_index=True, sort=False)

전체 예제 코드

지금까지의 과정을 하나의 코드로 정리하면 다음과 같습니다.

import pandas as pd

dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Audi', 'XUV', 'Lexus', 'Volkswagen'],
        "Place": ['Delhi', 'Bangalore', 'Pune', 'Chandigarh', 'Mumbai'],
        "Units": [100, 150, 50, 110, 90]
    }
)

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

# 딕셔너리 리스트 생성
d = [
    {'Car': 'Mustang', 'Place': 'Hyderabad', 'Units': 60},
    {'Car': 'Tesla', 'Place': 'Kerala', 'Units': 30},
    {'Car': 'RollsRoyce', 'Place': 'Punjab', 'Units': 70},
    {'Car': 'Bentley', 'Place': 'Gujarat', 'Units': 80}
]

print("\nDictionary....\n", d)

# 이미 생성된 DataFrame에 딕셔너리 리스트 추가
dataFrame = dataFrame.append(d, ignore_index=True, sort=False)

# 추가된 결과 출력
print("\nResult of append...\n", dataFrame)

출력 결과

위 코드를 실행하면 다음과 같은 출력이 나옵니다.

DataFrame ...
         Car       Place  Units
0        BMW       Delhi    100
1       Audi   Bangalore    150
2        XUV        Pune     50
3      Lexus  Chandigarh    110
4 Volkswagen      Mumbai     90
Dictionary....
[{'Units': 60, 'Car': 'Mustang', 'Place': 'Hyderabad'}, {'Units': 30, 'Car': 'Tesla', 'Place': 'Kerala'}, {'Units': 70, 'Car': 'RollsRoyce', 'Place': 'Punjab'}, {'Units': 80, 'Car': 'Bentley', 'Place': 'Gujarat'}]
Result of append...
         Car       Place  Units
0        BMW       Delhi    100
1       Audi   Bangalore    150
2        XUV        Pune     50
3      Lexus  Chandigarh    110
4 Volkswagen      Mumbai     90
5    Mustang   Hyderabad     60
6      Tesla      Kerala     30
7 RollsRoyce      Punjab     70
8    Bentley     Gujarat     80

참고: 최신 Pandas 버전에서는 pd.concat() 사용 권장

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

dataFrame = pd.concat([dataFrame, pd.DataFrame(d)], ignore_index=True)

pd.concat()은 여러 DataFrame을 효율적으로 병합할 수 있어, 반복문 안에서 데이터를 계속 추가하는 경우에도 더 나은 성능을 제공합니다.