Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python - วิธี Concatenate สอง DataFrame หรือมากกว่าใน Pandas ตามแถว


เพื่อ Concatenate DataFrame มากกว่าสองตัว ใช้เมธอด concat() ตั้งค่าพารามิเตอร์ axis เป็น axis = 0 เพื่อ concatenate ตามแถว ก่อนอื่น import ไลบรารีที่จำเป็น -

import pandas as pd

มาสร้าง DataFrame ตัวที่ 1 -

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

มาสร้าง DataFrame ตัวที่ 2 -

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

มาสร้าง DataFrame ตัวที่ 3 -

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

Concatenate DataFrame ทั้ง 3 ด้วย concat() ตั้ง "axis=1" สำหรับ concatenation ตามแถว -

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

ตัวอย่าง

โค้ดต่อไปนี้ -

import pandas as pd
# Create 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)
# Create 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)
# concatenating more than 2 dataframes
# set "axis=0" for concatenation along rows
res = [dataFrame1, dataFrame2, dataFrame3]
print("\n Concatenating all the 3 DataFrames (along rows)...\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
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