بکندباز

چگونه در Pandas دو دیتافریم را با هم ترکیب کنیم؟

در pandas، می‌توان دو یا چند DataFrame را با استفاده از توابع ادغام مختلف با هم ادغام کرد. به طور کلی، سه نوع ادغام در pandas وجود دارد:

1- ادغام سطر به سطر (Row-wise merging): در این نوع ادغام، دو DataFrame بر اساس شناسه سطرهایشان، یعنی ایندکس ها، با یکدیگر ادغام می‌شوند. برای این کار می‌توان از تابع concat()‎ استفاده کرد. به طور مثال:

 

import pandas as pd

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'],
                    'B': ['B0', 'B1', 'B2', 'B3'],
                    'C': ['C0', 'C1', 'C2', 'C3'],
                    'D': ['D0', 'D1', 'D2', 'D3']},
                   index=[0, 1, 2, 3])

df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'],
                    'B': ['B4', 'B5', 'B6', 'B7'],
                    'C': ['C4', 'C5', 'C6', 'C7'],
                    'D': ['D4', 'D5', 'D6', 'D7']},
                   index=[4, 5, 6, 7])

result = pd.concat([df1, df2])

print(result)

2- ادغام ستون به ستون (Column-wise merging): در این نوع ادغام، دو DataFrame بر اساس نام ستونهایشان با یکدیگر ادغام می‌شوند. برای این کار می‌توان از تابع merge()‎ استفاده کرد. به طور مثال:

 

import pandas as pd

left = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                     'A': ['A0', 'A1', 'A2', 'A3'],
                     'B': ['B0', 'B1', 'B2', 'B3']})

right = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'],
                      'C': ['C0', 'C1', 'C2', 'C3'],
                      'D': ['D0', 'D1', 'D2', 'D3']})

result = pd.merge(left, right, on='key')

print(result)

3- ادغام ترکیبی (Combining):

برای ادغام ترکیبی، می‌توان از تابع combine()‎ استفاده کرد. به طور مثال:

 

import pandas as pd
import numpy as np

df1 = pd.DataFrame({'A': [1., np.nan, 3., 4.],
                    'B': [np.nan, 2., 3., 5.],
                    'C': [1., 2., np.nan, 4.]})

df2 = pd.DataFrame({'A': [5., 6., np.nan, 8.],
                    'B': [np.nan, 8., 9., 10.],
                    'C': [1., np.nan, 3., 4.]})

result = df1.combine(df2, lambda x, y: np.where(pd.isna(x), y, x))

print(result)

در این مثال، با استفاده از تابع combine()‎، دو DataFrame با هم ترکیب شده‌اند. اگر در یک سلول مقدار NaN بود، مقدار آن با مقدار متناظر در DataFrame دوم جایگزین شده است. در غیر اینصورت، مقدار اولی حفظ شده است.

به طور کلی، ادغام دو یا چند DataFrame در pandas به دلیل داشتن توابع گوناگون و پرکاربرد، بسیار آسان است. این امکان را به برنامه نویسان می‌دهد تا به سرعت با اطلاعات مختلفی که در قالب DataFrame‌ها در اختیار دارند، کار کنند.

zohreh

مدیر وب سایت بکندباز

دیدگاه‌ها

*
*

    parisa پاسخ

    بسیار کاربردی بود. سپاس گزارم.