Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mengira Produk Cartesian DataFrames dengan Cekap dalam Panda?

Bagaimana untuk Mengira Produk Cartesian DataFrames dengan Cekap dalam Panda?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-07 17:32:13517semak imbas

How to Efficiently Calculate the Cartesian Product of DataFrames in Pandas?

Produk Cartesian dalam Panda

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.

Panda >= 1.2

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')

Panda < 1.2

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn