Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menggabungkan DataFrames pada Lajur Semasa Memelihara Maklumat daripada DataFrame Utama?

Bagaimana untuk Menggabungkan DataFrames pada Lajur Semasa Memelihara Maklumat daripada DataFrame Utama?

Patricia Arquette
Patricia Arquetteasal
2024-10-30 09:42:03594semak imbas

How to Merge DataFrames on a Column While Preserving Information from the Primary DataFrame?

Menggabungkan DataFrames pada Lajur sambil Memelihara Maklumat

Apabila bekerja dengan data dalam Python menggunakan Panda, menggabungkan bingkai data berdasarkan lajur biasa adalah perkara biasa tugasan. Walau bagaimanapun, kadangkala adalah perlu untuk mengekalkan maklumat daripada kedua-dua bingkai data, terutamanya apabila ia mengandungi data yang bertindih tetapi tidak lengkap. Artikel ini meneroka penyelesaian untuk menggabungkan bingkai data pada lajur sambil memastikan maklumat daripada bingkai data utama dipelihara.

Pernyataan Masalah

Pertimbangkan dua bingkai data, df1 dan df2. df1 mengandungi maklumat tentang umur individu, manakala df2 mengandungi jantina mereka. Matlamatnya adalah untuk menggabungkan df1 dan df2 pada lajur 'Nama', tetapi hanya menyimpan maklumat daripada df1. Individu mungkin tidak selalu hadir dalam kedua-dua bingkai data.

Penyelesaian

Untuk mencapai ini, kita boleh menggunakan kaedah map() bagi Siri yang dicipta dengan menetapkan indeks bagi satu bingkai data ke lajur yang kami ingin gabungkan. Kaedah map() membolehkan kami menggunakan fungsi pemetaan, yang dalam kes ini akan menjadi carian dalam bingkai data yang lain.

<code class="python"># Create the dataframes
df1 = pd.DataFrame({'Name': ['Tom', 'Sara', 'Eva', 'Jack', 'Laura'],
                    'Age': [34, 18, 44, 27, 30]})

df2 = pd.DataFrame({'Name': ['Tom', 'Paul', 'Eva', 'Jack', 'Michelle'],
                    'Sex': ['M', 'M', 'F', 'M', 'F']})

# Set the index of df2 to Name
df2.set_index('Name', inplace=True)

# Perform the lookup using map
df1['Sex'] = df1['Name'].map(df2['Sex'])

# Display the merged dataframe
print(df1)</code>

Penyelesaian Alternatif: Left Join

Sebagai alternatif, kita boleh menggunakan cantuman dengan cantuman kiri, yang memastikan semua baris daripada df1 disertakan dalam rangka data gabungan, walaupun tiada baris yang sepadan dalam df2.

<code class="python"># Perform the left join
df3 = df1.merge(df2, on='Name', how='left')

# Display the merged dataframe
print(df3)</code>

Nota: Jika bingkai data mengandungi berbilang lajur untuk penggabungan, gunakan merge(on=['Year', 'Code'], how='left ') atau tentukan lajur selepas cantuman kiri (cth., df1.merge(df2[['Tahun', 'Kod', 'Val']], pada=['Tahun', 'Kod'], how='left')).

Mengendalikan Pendua

Jika lajur digunakan untuk penggabungan mempunyai pendua, adalah penting untuk mengendalikan nilai pendua untuk mengelakkan kekaburan. Ini boleh dilakukan menggunakan drop_duplicates() atau dengan menggunakan kamus untuk menentukan pemetaan.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan DataFrames pada Lajur Semasa Memelihara Maklumat daripada DataFrame Utama?. 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