Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python - Cách nối (concatenate) hai hoặc nhiều Pandas DataFrame theo hàng


Để nối nhiều hơn hai Pandas DataFrame, sử dụng phương thức concat(). Đặt tham số axis là axis=0 để nối theo hàng. Trước tiên, nhập thư viện cần thiết:

import pandas as pd

Hãy tạo DataFrame thứ 1:

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

Hãy tạo DataFrame thứ 2:

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

Hãy tạo DataFrame thứ 3:

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

Nối tất cả 3 DataFrame sử dụng concat(). Đặt "axis=0" cho nối theo hàng:

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

Ví dụ

Dưới đây là mã:

import pandas as pd
# Tạo DataFrame1
dataFrame1 = pd.DataFrame(
    {
        "Col1": [10, 20, 30], "Col2": [40, 50, 60], "Col3": [70, 80, 90],
    },
    index=[0, 1, 2],
)
# DataFrame1
print("DataFrame1...\n", dataFrame1)
# Tạo DataFrame2
dataFrame2 = pd.DataFrame(
    {
        "Col1": [100, 110, 120], "Col2": [130, 140, 150], "Col3": [160, 170, 180],
    },
    index=[3, 4, 5],
)
# DataFrame2
print("DataFrame2...\n", dataFrame2)
dataFrame3 = pd.DataFrame(
    {
        "Col1": [200, 210, 220], "Col2": [230, 240, 250], "Col3": [260, 270, 280],
    },
    index=[6, 7, 8],
)
# DataFrame3
print("DataFrame3...\n", dataFrame3)
# nối nhiều hơn 2 dataframe
# đặt "axis=0" cho nối theo hàng
res = [dataFrame1, dataFrame2, dataFrame3]
print("\n Concatenating all the 3 DataFrames (along rows)...\n", pd.concat(res, axis=0))

Kết quả

Điều này sẽ tạo ra đầu ra sau:

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
Concatenating all the 3 DataFrames (along rows)...
   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