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
Lepaskan: 2024-12-07 17:32:13
asal
470 orang telah melayarinya

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')
Salin selepas log masuk

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']]
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan