Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Mencipta Produk Cartesian Pandas DataFrames dengan Cekap?

Bagaimana untuk Mencipta Produk Cartesian Pandas DataFrames dengan Cekap?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-11 17:59:15976semak imbas

How to Efficiently Create a Cartesian Product of Pandas DataFrames?

Produk Cartesian dalam Panda: Amalan dan Penyelesaian Terbaik

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.

Kaedah Gabungan Silang

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 .

Menggunakan Kekunci Berulang dalam Gabungan

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.

Kesimpulan

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!

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