Pandas DataFrame에 새로운 행을 추가하려면 append() 메서드를 사용할 수 있습니다. 이 글에서는 두 개의 DataFrame을 만들고, 하나를 다른 하나 뒤에 연결하여 행을 추가하는 과정을 단계별로 살펴봅니다.
1. Pandas 라이브러리 불러오기
먼저 pandas를 별칭(alias)과 함께 임포트합니다.
import pandas as pd
2. 첫 번째 DataFrame 생성
차량 이름을 담은 첫 번째 DataFrame을 만듭니다.
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Jaguar']
}
)
3. 두 번째 DataFrame 생성
같은 구조로 두 번째 DataFrame을 만듭니다.
dataFrame2 = pd.DataFrame(
{
"Car": ['Mercedes', 'Tesla', 'Bentley', 'Mustang']
}
)
4. 행을 끝에 추가하기
append() 메서드를 사용하면 두 번째 DataFrame의 행들이 첫 번째 DataFrame의 맨 뒤에 연결됩니다.
dataFrame1 = dataFrame1.append(dataFrame2)
전체 예제 코드
다음은 위 과정을 모두 포함한 전체 코드입니다.
import pandas as pd
# 첫 번째 DataFrame 생성
dataFrame1 = pd.DataFrame(
{
"Car": ['BMW', 'Lexus', 'Audi', 'Jaguar']
}
)
print("DataFrame1 ...\n", dataFrame1)
# DataFrame1의 길이(행 수) 확인
print("DataFrame1 length = ", len(dataFrame1))
# 두 번째 DataFrame 생성
dataFrame2 = pd.DataFrame(
{
"Car": ['Mercedes', 'Tesla', 'Bentley', 'Mustang']
}
)
print("\nDataFrame2 ...\n", dataFrame2)
# DataFrame2의 길이(행 수) 확인
print("DataFrame2 length = ", len(dataFrame2))
# 두 DataFrame 연결(행 추가)
dataFrame1 = dataFrame1.append(dataFrame2)
print("\nAppending dataframes...\n", dataFrame1)
실행 결과
위 코드를 실행하면 다음과 같은 출력이 나타납니다.
DataFrame1 ...
Car
0 BMW
1 Lexus
2 Audi
3 Jaguar
DataFrame1 length = 4
DataFrame2 ...
Car
0 Mercedes
1 Tesla
2 Bentley
3 Mustang
DataFrame2 length = 4
Appending dataframes...
Car
0 BMW
1 Lexus
2 Audi
3 Jaguar
0 Mercedes
1 Tesla
2 Bentley
3 Mustang
출력 결과를 보면 두 번째 DataFrame의 행들이 그대로 뒤에 붙어 총 8개의 행을 가진 DataFrame이 되었지만, 인덱스가 각각 0~3으로 중복되어 나타나는 점에 유의해야 합니다.
참고: 최신 버전에서는 pd.concat() 사용을 권장합니다
append() 메서드는 pandas 1.4.0부터 공식적으로 지원 중단(deprecated)되었으며, pandas 2.0부터는 완전히 제거되었습니다. 따라서 최신 환경에서는 pd.concat() 함수를 사용하는 것이 좋습니다.
# 최신 pandas에서 권장되는 방식 result = pd.concat([dataFrame1, dataFrame2], ignore_index=True) print(result)
ignore_index=True 옵션을 함께 사용하면 기존 인덱스를 무시하고 0부터 시작하는 연속된 새 인덱스가 자동으로 부여되어, 위 예제에서 발생했던 인덱스 중복 문제도 깔끔하게 해결됩니다.