Apabila bekerja dengan bingkai data Pandas, selalunya perlu mencipta produk Cartesian daripada dua atau lebih bingkai data. Ini boleh menjadi operasi yang berguna untuk menggabungkan data daripada berbilang sumber atau meneroka hubungan antara pembolehubah yang berbeza.
Dalam versi terbaru Panda (>= 1.2), salib kaedah gabungan menyediakan cara yang mudah untuk mengira produk Cartesian dua bingkai data. Untuk menggunakan kaedah ini, hanya panggil fungsi gabungan dengan hujah how='cross':
import pandas as pd df1 = pd.DataFrame({'col1': [1, 2], 'col2': [3, 4]}) df2 = pd.DataFrame({'col3': [5, 6]}) df_cartesian = pd.merge(df1, df2, how='cross')
Bingkai data yang terhasil, df_cartesian, akan mengandungi semua gabungan baris daripada df1 dan df2, menghasilkan produk Cartesian .
Untuk versi Panda sebelum 1.2, adalah perlu untuk menggunakan pendekatan yang sedikit berbeza untuk mencipta produk Cartesian. Pendekatan ini melibatkan penggunaan kekunci berulang dalam salah satu bingkai data dan kemudian menggabungkan pada kunci tersebut:
df1 = pd.DataFrame({'key': [1, 1], 'col1': [1, 2], 'col2': [3, 4]}) df2 = pd.DataFrame({'key': [1, 1], 'col3': [5, 6]}) df_cartesian = pd.merge(df1, df2, on='key')[['col1', 'col2', 'col3']]
Dengan mencipta kunci yang diulang untuk setiap baris dalam kedua-dua bingkai data, kami boleh melaksanakan produk Cartesian dengan berkesan dengan menggabungkan pada kunci itu.
Sama ada anda menggunakan Panda >= 1.2 atau versi terdahulu, kaedah yang diterangkan di atas menyediakan cara yang cekap untuk mencipta produk Cartesian daripada dua atau lebih bingkai data. Bergantung pada versi khusus Panda yang anda gunakan, satu pendekatan mungkin lebih mudah atau cekap daripada yang lain.
Atas ialah kandungan terperinci Bagaimana untuk Mencipta Produk Cartesian Pandas DataFrames dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!