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

Python – 행 방향으로 두 개 이상의 Pandas DataFrame 연결하는 방법

두 개 이상의 Pandas DataFrame을 하나로 합치려면 concat() 메서드를 사용하면 됩니다. 이때 axis 매개변수를 axis=0으로 설정하면 행(row) 방향으로 연결됩니다.

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

첫 번째 DataFrame 생성

dataFrame1 = pd.DataFrame(
    {
        "Col1": [10, 20, 30],
        "Col2": [40, 50, 60],
        "Col3": [70, 80, 90],
    },
    index=[0, 1, 2],
)

두 번째 DataFrame 생성

dataFrame2 = pd.DataFrame(
    {
        "Col1": [100, 110, 120],
        "Col2": [130, 140, 150],
        "Col3": [160, 170, 180],
    },
    index=[3, 4, 5],
)

세 번째 DataFrame 생성

dataFrame3 = pd.DataFrame(
    {
        "Col1": [200, 210, 220],
        "Col2": [230, 240, 250],
        "Col3": [260, 270, 280],
    },
    index=[6, 7, 8],
)

이제 concat() 메서드에 세 개의 DataFrame을 리스트 형태로 전달하여 모두 연결합니다. 행 방향으로 연결하려면 axis=0으로 설정합니다.

res = [dataFrame1, dataFrame2, dataFrame3]
pd.concat(res, axis=0)

전체 예제 코드

다음은 지금까지의 내용을 정리한 전체 코드입니다.

import pandas as pd

# DataFrame1 생성
dataFrame1 = pd.DataFrame(
    {
        "Col1": [10, 20, 30],
        "Col2": [40, 50, 60],
        "Col3": [70, 80, 90],
    },
    index=[0, 1, 2],
)
print("DataFrame1...\n", dataFrame1)

# DataFrame2 생성
dataFrame2 = pd.DataFrame(
    {
        "Col1": [100, 110, 120],
        "Col2": [130, 140, 150],
        "Col3": [160, 170, 180],
    },
    index=[3, 4, 5],
)
print("DataFrame2...\n", dataFrame2)

# DataFrame3 생성
dataFrame3 = pd.DataFrame(
    {
        "Col1": [200, 210, 220],
        "Col2": [230, 240, 250],
        "Col3": [260, 270, 280],
    },
    index=[6, 7, 8],
)
print("DataFrame3...\n", dataFrame3)

# 두 개 이상의 DataFrame 연결
# 행 방향으로 연결하려면 axis=0 설정
res = [dataFrame1, dataFrame2, dataFrame3]
print("\n세 개의 DataFrame을 행 방향으로 연결한 결과...\n", pd.concat(res, axis=0))

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DataFrame1...
    Col1   Col2   Col3
0   10     40     70
1   20     50     80
2   30     60     90
DataFrame2...
    Col1   Col2   Col3
3   100    130    160
4   110    140    170
5   120    150    180
DataFrame3...
    Col1   Col2   Col3
6   200    230    260
7   210    240    270
8   220    250    280

세 개의 DataFrame을 행 방향으로 연결한 결과...
    Col1   Col2   Col3
0   10     40     70
1   20     50     80
2   30     60     90
3   100    130    160
4   110    140    170
5   120    150    180
6   200    230    260
7   210    240    270
8   220    250    280

실행 결과를 보면 세 개의 DataFrame이 각자 가진 인덱스(0~8)를 그대로 유지한 채 위에서 아래로 차례대로 합쳐진 것을 확인할 수 있습니다. 만약 연결 후 인덱스를 새로 부여하고 싶다면 ignore_index=True 옵션을 함께 사용하면 됩니다.