Cara melakukan anti-gabung di pandas
Anti-gabung memungkinkan Anda mengembalikan semua baris dalam satu kumpulan data yang tidak memiliki nilai yang cocok di kumpulan data lain.
Anda dapat menggunakan sintaks berikut untuk melakukan anti-gabungan antara dua panda DataFrames:
outer = df1. merge (df2, how=' outer ', indicator= True ) anti_join = outer[(outer._merge==' left_only ')]. drop (' _merge ', axis= 1 )
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: melakukan anti-join di Pandas
Mari kita asumsikan kita memiliki dua panda DataFrames berikut:
import pandas as pd
#create first DataFrame
df1 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E'],
' points ': [18, 22, 19, 14, 30]})
print (df1)
team points
0 to 18
1 B 22
2 C 19
3 D 14
4 E 30
#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'B', 'C', 'F', 'G'],
' points ': [18, 22, 19, 22, 29]})
print (df2)
team points
0 to 18
1 B 22
2 C 19
3 F 22
4 G 29
Kita dapat menggunakan kode berikut untuk mengembalikan semua baris dari DataFrame pertama yang tidak memiliki tim yang cocok di DataFrame kedua:
#perform outer join outer = df1. merge (df2, how=' outer ', indicator= True ) #perform anti-join anti_join = outer[(outer._merge==' left_only ')]. drop (' _merge ', axis= 1 ) #view results print (anti_join) team points 3 D 14 4 E 30
Kita dapat melihat bahwa ada dua tim dari DataFrame pertama yang tidak memiliki nama tim yang cocok di DataFrame kedua.
Anti-gabung berfungsi seperti yang diharapkan.
Hasil akhirnya adalah DataFrame yang hanya berisi baris di mana nama tim termasuk dalam DataFrame pertama tetapi bukan DataFrame kedua.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:
Bagaimana cara melakukan inner join di Pandas
Bagaimana cara melakukan gabung kiri di Pandas
Bagaimana cara melakukan cross join di Pandas