Bagaimana cara membandingkan kolom dalam bingkai data yang berbeda?
23
Saya ingin membandingkan satu kolom df dengan df lainnya. Kolom adalah nama dan nama belakang. Saya ingin memeriksa apakah seseorang dalam satu frame data ada di frame lain.
Bisakah Anda menunjukkan bagaimana hasil yang Anda inginkan? Apakah itu df dengan nama yang muncul di kedua dfs, dan apakah Anda juga memerlukan hal lain seperti hitungan, atau kolom yang cocok di df2, dll. Terima kasih!
Saya pikir pertanyaannya adalah tentang membandingkan nilai-nilai dalam dua kolom yang berbeda dalam kerangka data yang berbeda karena orang yang ingin memeriksa memeriksa apakah seseorang dalam satu kerangka data ada di yang lain.
Divyanshu Shekhar
Terima kasih, saya salah menjawab. Saya sudah memperbarui jawabannya sekarang.
aathiraks
1
Anda dapat mengecek jumlah pasti posisi umum dan berbeda antara dua df dengan menggunakan isin dan value_counts ()
Perhatikan bahwa kolom bingkai data adalah seri data. Jadi jika Anda mengambil dua kolom sebagai seri panda, Anda dapat membandingkannya seperti yang akan Anda lakukan dengan array numpy.
Jawaban:
Jika Anda ingin memeriksa nilai yang sama pada kolom tertentu, misalkan Nama Anda dapat menggabungkan kedua Dataframe ke yang baru:
Saya pikir ini lebih efisien dan lebih cepat
where
jika Anda memiliki kumpulan data besarsumber
True
entri menunjukkan elemen umum. Ini juga mengungkapkan posisi elemen umum, tidak seperti solusi denganmerge
.sumber
df.
jawaban anda? Hanya adadf1
dandf2
tetapi tidak adadf
Membandingkan nilai dalam dua kolom berbeda
Dengan menggunakan set, dapatkan nilai unik di setiap kolom. Perpotongan dua set ini akan memberikan nilai unik di kedua kolom.
Contoh:
df1 = pd.DataFrame({'c1': [1, 4, 7], 'c2': [2, 5, 1], 'c3': [3, 1, 1]}) df2 = pd.DataFrame({'c4': [1, 4, 7], 'c2': [3, 5, 2], 'c3': [3, 7, 5]}) set(df1['c2']).intersection(set(df2['c2']))
Keluaran:
{2, 5}
Membandingkan nama kolom dari dua dataframe
Jika Anda mencoba membandingkan nama kolom dari dua kerangka data:
Jika
df1
dandf2
dua dataframe:set(df1.columns).intersection(set(df2.columns))
Ini akan memberikan nama kolom unik yang terkandung dalam kedua kerangka data.
Contoh:
Keluaran:
{'c2', 'c3'}
sumber
Anda dapat mengecek jumlah pasti posisi umum dan berbeda antara dua df dengan menggunakan isin dan value_counts ()
Seperti itu:
Hasil:
Benar = umum Salah = berbeda
sumber
Perhatikan bahwa kolom bingkai data adalah seri data. Jadi jika Anda mengambil dua kolom sebagai seri panda, Anda dapat membandingkannya seperti yang akan Anda lakukan dengan array numpy.
sumber