Bagaimana Anda bergabung dengan kerangka data dengan python?

Pandas memiliki fitur lengkap, operasi gabungan dalam memori berkinerja tinggi yang secara idiomatis sangat mirip dengan database relasional seperti SQL

Pandas menyediakan satu fungsi, penggabungan, sebagai titik masuk untuk semua operasi gabungan basis data standar antara objek DataFrame −

pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None,
left_index=False, right_index=False, sort=True)

Di sini, kami telah menggunakan parameter berikut −

  • kiri - Objek DataFrame

  • kanan - Objek DataFrame lainnya

  • on − Kolom (nama) untuk bergabung. Harus ditemukan di objek DataFrame kiri dan kanan

  • left_on − Kolom dari DataFrame kiri untuk digunakan sebagai kunci. Bisa berupa nama kolom atau array dengan panjang yang sama dengan panjang DataFrame

  • right_on − Kolom dari DataFrame kanan untuk digunakan sebagai kunci. Bisa berupa nama kolom atau array dengan panjang yang sama dengan panjang DataFrame

  • left_index − Jika True, gunakan indeks (label baris) dari DataFrame kiri sebagai kunci gabungannya. Dalam kasus DataFrame dengan MultiIndex (hierarkis), jumlah level harus sesuai dengan jumlah kunci gabungan dari DataFrame kanan

  • right_index − Penggunaan yang sama seperti left_index untuk DataFrame kanan

  • how − Salah satu dari 'kiri', 'kanan', 'luar', 'dalam'. Default ke batin. Setiap metode telah dijelaskan di bawah ini

  • sort − Urutkan hasil DataFrame dengan kunci gabungan dalam urutan leksikografis. Default ke True, pengaturan ke False akan meningkatkan kinerja secara substansial dalam banyak kasus

Mari kita buat dua DataFrames yang berbeda dan melakukan operasi penggabungan di atasnya

# import the pandas library
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame(
   {'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print left
print right
_

Outputnya adalah sebagai berikut −

    Name  id   subject_id
0   Alex   1         sub1
1    Amy   2         sub2
2  Allen   3         sub4
3  Alice   4         sub6
4  Ayoung  5         sub5

    Name  id   subject_id
0  Billy   1         sub2
1  Brian   2         sub4
2  Bran    3         sub3
3  Bryce   4         sub6
4  Betty   5         sub5

Menggabungkan Dua DataFrame pada Kunci

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
	'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left,right,on='id')

Outputnya adalah sebagai berikut −

   Name_x   id  subject_id_x   Name_y   subject_id_y
0  Alex      1          sub1    Billy           sub2
1  Amy       2          sub2    Brian           sub4
2  Allen     3          sub4     Bran           sub3
3  Alice     4          sub6    Bryce           sub6
4  Ayoung    5          sub5    Betty           sub5
_

Menggabungkan Dua DataFrame pada Beberapa Kunci

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
	'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left,right,on=['id','subject_id'])

Outputnya adalah sebagai berikut −

    Name_x   id   subject_id   Name_y
0    Alice    4         sub6    Bryce
1   Ayoung    5         sub5    Betty
_

Menggabungkan Menggunakan Argumen 'bagaimana'

Argumen how untuk menggabungkan menentukan cara menentukan kunci mana yang akan disertakan dalam tabel yang dihasilkan. Jika kombinasi tombol tidak muncul di tabel kiri atau kanan, nilai di tabel gabungan akan menjadi NA

Berikut adalah ringkasan dari how options dan nama setara SQL mereka −

Gabungkan Metodesetara SQLDeskripsikiriLEFT OUTER JOINGunakan kunci dari objek kirikananRIGHT OUTER JOINGunakan kunci dari objek kananouterFULL OUTER JOINGunakan penyatuan kunci dalamINNER JOINGunakan persimpangan kunci

Gabung Kiri

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left, right, on='subject_id', how='left')

Outputnya adalah sebagai berikut −

    Name_x   id_x   subject_id   Name_y   id_y
0     Alex      1         sub1      NaN    NaN
1      Amy      2         sub2    Billy    1.0
2    Allen      3         sub4    Brian    2.0
3    Alice      4         sub6    Bryce    4.0
4   Ayoung      5         sub5    Betty    5.0
_

Gabung Kanan

import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print pd.merge(left, right, on='subject_id', how='right')
_

Outputnya adalah sebagai berikut −

# import the pandas library
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame(
   {'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print left
print right
_0

Gabung Luar

# import the pandas library
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame(
   {'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print left
print right
_1

Outputnya adalah sebagai berikut −

# import the pandas library
import pandas as pd
left = pd.DataFrame({
   'id':[1,2,3,4,5],
   'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'],
   'subject_id':['sub1','sub2','sub4','sub6','sub5']})
right = pd.DataFrame(
   {'id':[1,2,3,4,5],
   'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'],
   'subject_id':['sub2','sub4','sub3','sub6','sub5']})
print left
print right
_2

Gabungan Dalam

Bergabung akan dilakukan pada index. Bergabung operasi menghormati objek yang disebut. Jadi, sebuah. join(b) tidak sama dengan b. bergabung(a)

Bagaimana cara menggabungkan dua DataFrames dalam DataFrame?

Gunakan panda. concat() metode untuk menggabungkan dua DataFrame dengan baris yang berarti menambahkan dua DataFrame . Secara default, ini melakukan operasi penambahan yang mirip dengan gabungan yang mencerahkan semua baris dari kedua DataFrame ke satu DataFrame.

Manakah 3 cara utama untuk menggabungkan DataFrame bersama?

Menggabungkan dua DataFrame dapat dilakukan dengan berbagai cara ( kiri, kanan, dan dalam ) bergantung pada data apa yang harus ada dalam DataFrame akhir. to_csv dapat digunakan untuk menulis DataFrames dalam format CSV.

Bagaimana cara menggabungkan beberapa DataFrames dengan Python?

Fungsi pandas merge() digunakan untuk menggabungkan beberapa Dataframe. Kita bisa menggunakan salah satu panda. gabungan() atau DataFrame. merge() untuk menggabungkan beberapa Dataframe.

Bagaimana Anda menggabungkan dua tabel dengan Python?

Fungsi concat() melakukan operasi penggabungan beberapa tabel di sepanjang salah satu sumbu (baris atau kolom).