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

Python - วิธีเชื่อมต่อ Pandas DataFrames สองตัวขึ้นไปตามแถวได้อย่างไร


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

import pandas as pd

ให้เราสร้าง 1 st ดาต้าเฟรม -

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

ให้เราสร้าง 2 nd ดาต้าเฟรม -

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

ให้เราสร้าง 3 rd ดาต้าเฟรม -

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

เชื่อม DataFrame ทั้ง 3 ตัวเข้าด้วยกันโดยใช้ concat() ตั้งค่า "axis=1" สำหรับการต่อกันตามแถว -

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