Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melakukan Gabungan Luar Kiri Panda Merentas Berbilang DataFrames dengan Berbilang Lajur Sertaan?

Bagaimana untuk Melakukan Gabungan Luar Kiri Panda Merentas Berbilang DataFrames dengan Berbilang Lajur Sertaan?

Barbara Streisand
Barbara Streisandasal
2025-01-04 00:51:441021semak imbas

How to Perform a Pandas Left Outer Join Across Multiple DataFrames with Multiple Join Columns?

Pandas Kiri Luar Sertai pada Berbilang DataFrames dengan Berbilang Lajur

Dalam Panda, menggabungkan bingkai data adalah tugas biasa. Ini menjadi lebih kompleks apabila melakukan gabungan yang melibatkan berbilang jadual dan berbilang lajur gabungan. Untuk gabungan luar kiri, kami mengekalkan semua baris daripada bingkai data kiri dan mengisi nilai yang tiada daripada bingkai data kanan.

Untuk menggabungkan bingkai data df1, df2 dan df3 dengan berbilang lajur gabungan, kami mengesyorkan dua langkah pendekatan:

Langkah 1: Gabungkan df1 dan df2

s1 = pd.merge(df1, df2, how='left', on=['Year', 'Week', 'Colour'])

Langkah 2: Gabungkan hasil daripada Langkah 1 dengan df3

Memandangkan kami tidak memerlukan lajur Tahun untuk gabungan kedua, kita boleh menggugurkannya daripada df3 sebelum menyertai:

df3_dropped = df3.drop('Year', axis=1)
df = pd.merge(s1, df3_dropped, how='left', on=['Week', 'Colour'])

Ini memberikan kita yang diingini keluaran:

   Year Week Colour  Val1  Val2 Val3
0  2014    A    Red    50   NaN  NaN
1  2014    B    Red    60   NaN   60
2  2014    B  Black    70   100   10
3  2014    C    Red    10    20  NaN
4  2014    D  Green    20   NaN   20

Atas ialah kandungan terperinci Bagaimana untuk Melakukan Gabungan Luar Kiri Panda Merentas Berbilang DataFrames dengan Berbilang Lajur Sertaan?. 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