Pandas: dapatkan baris yang tidak ada di dataframe lain


Anda dapat menggunakan sintaks dasar berikut untuk mendapatkan baris dari DataFrame panda yang tidak ada di DataFrame lain:

 #merge two DataFrames and create indicator column
df_all = df1. merge ( df2.drop_duplicates (), on=[' col1 ',' col2 '],
                   how=' left ', indicator= True )

#create DataFrame with rows that exist in first DataFrame only
df1_only = df_all[df_all[' _merge '] == ' left_only ']

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: Mendapatkan baris di Pandas DataFrame yang tidak ada di DataFrame lain

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 ': [12, 15, 22, 29, 24]}) 

print (df1)

  team points
0 to 12
1 B 15
2 C 22
3 D 29
4 E 24

#create second DataFrame
df2 = pd. DataFrame ({' team ': ['A', 'D', 'F', 'G', 'H'],
                    ' points ': [12, 29, 15, 19, 10]})

print (df2)

  team points
0 to 12
1 D 29
2 F 15
3 G 19
4:10 a.m.

Kita dapat menggunakan sintaks berikut untuk menggabungkan dua DataFrame dan membuat kolom indikator untuk menunjukkan baris mana yang dimiliki setiap DataFrame:

 #merge two DataFrames and create indicator column
df_all = df1. merge ( df2.drop_duplicates (), on=[' team ',' points '],
                   how=' left ', indicator= True )

#view result
print (df_all)

Kita kemudian dapat menggunakan sintaks berikut untuk mendapatkan hanya baris dari DataFrame pertama yang tidak ada di DataFrame kedua:

 #create DataFrame with rows that exist in first DataFrame only
df1_only = df_all[df_all[' _merge '] == ' left_only ']

#view DataFrame
print (df1_only)

  team points _merge
1 B 15 left_only
2 C 22 left_only
4 E 24 left_only

Terakhir, kita dapat menghapus kolom _merge jika kita ingin:

 #drop '_merge' column
df1_only = df1_only. drop (' _merge ', axis= 1 )

#view DataFrame
print (df1_only)

  team points
1 B 15
2 C 22
4 E 24

Hasilnya adalah DataFrame yang semua barisnya ada di DataFrame pertama tetapi tidak di DataFrame kedua.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:

Bagaimana cara menambahkan kolom dari satu DataFrame ke DataFrame lainnya di Pandas
Bagaimana mengubah urutan kolom di Pandas
Cara mengurutkan kolom berdasarkan nama di Pandas

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *