Apakah mungkin untuk hanya menggabungkan beberapa kolom? Saya memiliki DataFrame df1 dengan kolom x, y, z, dan df2 dengan kolom x, a, b, c, d, e, f, dll.
Saya ingin menggabungkan dua DataFrames pada x, tetapi saya hanya ingin menggabungkan kolom df2.a, df2.b - bukan seluruh DataFrame.
Hasilnya akan menjadi DataFrame dengan x, y, z, a, b.
Saya bisa menggabungkan lalu menghapus kolom yang tidak diinginkan, tetapi sepertinya ada metode yang lebih baik.
Jawaban:
Anda dapat menggabungkan sub-DataFrame (hanya dengan kolom tersebut):
sumber
list('xab')
mengambil setiap elemen (huruf) dari string 'xab' dan mengubahnya menjadi elemen daftar sehinggalist('xab')
kembali['x', 'a', 'b']
. Itu berfungsi jika setiap kolom memiliki satu huruf sebagai nama. Dalam kasus Anda, saya pikir Anda perlu melakukan df1.merge (df2 ['Unique_External_Users'], * other_arguments). ... Kemungkinan besar Anda sudah menyelesaikannya sekarang, tinggalkan ini untuk pemula, seperti sayaAnda ingin menggunakan DUA tanda kurung, jadi jika Anda melakukan tindakan VLOOKUP:
Ini akan memberi Anda semua di df asli + tambahkan satu kolom yang sesuai di df2 yang ingin Anda gabungkan.
sumber
Jika Anda ingin melepaskan kolom dari frame data target, tetapi kolom diperlukan untuk gabungan, Anda dapat melakukan hal berikut:
Bagian tersebut
.drop('key1')
akan mencegah 'key1' disimpan dalam bingkai data yang dihasilkan, meskipun itu diharuskan untuk bergabung di tempat pertama.sumber
KeyError: "['key1'] not found in axis"
Kamu bisa memakai
.loc
untuk memilih kolom tertentu dengan semua baris dan kemudian menariknya. Contohnya di bawah ini:Dalam contoh ini, Anda menggabungkan dataframe1 dan dataframe2. Anda telah memilih untuk melakukan gabungan kiri luar pada 'kunci'. Namun, untuk dataframe2 Anda telah menentukan
.iloc
yang memungkinkan Anda untuk menentukan baris dan kolom yang Anda inginkan dalam format numerik. Menggunakan:
, Anda memilih semua baris, tetapi[0:5]
memilih 5 kolom pertama. Anda bisa menggunakan.loc
untuk menentukan dengan nama, tapi jika Anda berurusan dengan nama kolom yang panjang,.iloc
mungkin lebih baik.sumber
.loc
akan membuat salinan , dan pada df besar itu bisa menyakitkan. Mungkin lebih baik untuk menggabungkan lalu segera mengambil potongan kolom dalam ekspresi yang sama.Ini untuk menggabungkan kolom yang dipilih dari dua tabel.
Jika
table_1
berisit1_a,t1_b,t1_c..,id,..t1_z
kolom, dantable_2
berisit2_a, t2_b, t2_c..., id,..t2_z
kolom, dan hanya t1_a, id, t2_a yang diperlukan di tabel akhir, makasumber