Apabila bekerja dengan dua atau lebih bingkai data dalam Panda, mungkin terdapat keperluan untuk mendapatkan produk cartesian mereka, yang menghasilkan bingkai data baharu dengan semua gabungan baris daripada bingkai data input.
Dalam versi terbaru Panda, fungsi gabungan boleh digunakan untuk melaksanakan operasi ini dengan hujah how='cross'. Pendekatan ini ringkas dan cekap:
import pandas as pd df1 = pd.DataFrame({'col1':[1,2],'col2':[3,4]}) df2 = pd.DataFrame({'col3':[5,6]}) df_cartesian = df1.merge(df2, how='cross')
Untuk versi terdahulu Panda, teknik yang sedikit berbeza diperlukan. Ia melibatkan mencipta lajur utama yang diulang untuk setiap baris dalam kedua-dua bingkai data. Setelah lajur utama ini ditambahkan, cantuman boleh digunakan untuk melaksanakan produk kartesian:
import pandas as pd from pandas import merge df1 = pd.DataFrame({'key':[1,1], 'col1':[1,2],'col2':[3,4]}) df2 = pd.DataFrame({'key':[1,1], 'col3':[5,6]}) merge(df1, df2,on='key')[['col1', 'col2', 'col3']]
Pendekatan ini lebih terlibat tetapi berfungsi dengan berkesan dalam versi Pandas yang lebih lama.
Atas ialah kandungan terperinci Bagaimana untuk Mengira Produk Cartesian DataFrames dengan Cekap dalam Panda?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!