Saya memiliki dua pandas
bingkai data, a
dan b
:
a1 a2 a3 a4 a5 a6 a7
1 3 4 5 3 4 5
0 2 0 3 0 2 1
2 5 6 5 2 1 2
dan
b1 b2 b3 b4 b5 b6 b7
3 5 4 5 1 4 3
0 1 2 3 0 0 2
2 2 1 5 2 6 5
Dua frame data berisi data yang persis sama, tetapi dalam urutan yang berbeda dan dengan nama kolom yang berbeda. Berdasarkan angka dalam dua frame data, saya ingin dapat mencocokkan setiap nama kolom a
dengan setiap nama kolom di b
.
Tidak semudah membandingkan baris pertama a
dengan baris pertama b
karena ada nilai duplikat, misalnya keduanya a4
dan a7
memiliki nilai 5
sehingga tidak mungkin untuk segera mencocokkannya dengan salah satu b2
atau b4
.
Apa cara terbaik untuk melakukan ini?
python
python-3.x
pandas
OD1995
sumber
sumber
[*df1.index]
? Akan berterima kasih padamu, tepuk tangan.sort_values(by=..)
mengambil daftar sebagai parameter jadi saya membongkar indeks ke daftar di sini, Anda juga bisa melakukanlist(df1.index)
alih - alih[*df1.index]
:)Ini salah satu cara meningkatkan numpy
broadcasting
:Pendekatan serupa lainnya (oleh @piR):
sumber
Salah satu caranya
merge
sumber
pemahaman kamus
Gunakan
tuple
nilai kolom sebagai kunci hashable dalam kamusKalau-kalau kita tidak memiliki representasi yang sempurna, saya hanya menghasilkan kamus untuk kolom di mana ada kecocokan.
idxmax
Ini berbatasan dengan absurd ... Jangan benar-benar melakukan ini.
sumber