Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Menggabungkan DataFrame Berdasarkan Lajur, Memelihara Maklumat DataFrame Pertama?
Memandangkan dua bingkai data dengan baris yang bertindih tetapi tidak sama, anda boleh menggabungkannya berdasarkan yang tertentu lajur untuk menambah maklumat daripada satu kepada yang lain. Dalam kes ini, anda ingin menggabungkan dua bingkai data, df1 dan df2, dengan df1 mengandungi maklumat tentang umur dan df2 mengandungi maklumat tentang jantina. Begini cara untuk melakukannya sambil menyimpan maklumat daripada bingkai data pertama.
Untuk menggabungkan bingkai data dan mengekalkan maklumat bingkai data pertama, gunakan fungsi peta bersama-sama dengan Siri yang dicipta oleh set_index:
<code class="python">df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex'])</code>
Contohnya:
<code class="python">df1 = pd.DataFrame({'Name': ['Tom', 'Sara', 'Eva', 'Jack', 'Laura'], 'Age': [34, 18, 44, 27, 30], 'Sex': None}) df2 = pd.DataFrame({'Name': ['Tom', 'Paul', 'Eva', 'Jack', 'Michelle'], 'Sex': ['M', 'M', 'F', 'M', 'F']}) df1['Sex'] = df1['Name'].map(df2.set_index('Name')['Sex']) print(df1)</code>
Output:
Name Age Sex 0 Tom 34 M 1 Sara 18 NaN 2 Eva 44 F 3 Jack 27 M 4 Laura 30 NaN
Cara lain untuk mencapai hasil yang sama ialah dengan menggabungkan bingkai data menggunakan gabungan kiri:
<code class="python">df = df1.merge(df2[['Name', 'Sex']], on='Name', how='left')</code>
Contoh:
<code class="python">df = df1.merge(df2[['Name', 'Sex']], on='Name', how='left') print(df)</code>
Output:
Name Age Sex 0 Tom 34 M 1 Sara 18 NaN 2 Eva 44 F 3 Jack 27 M 4 Laura 30 NaN
Jika anda perlu bergabung pada berbilang lajur, gunakan pendekatan sambung kiri yang sama dengan lajur sambung tambahan yang ditentukan:
<code class="python">df = df1.merge(df2[['Name', 'Sex', 'Year', 'Code']], on=['Year', 'Code'], how='left')</code>
Jika anda menghadapi ralat disebabkan salinan pendua lajur, kendalikannya dengan mengalih keluar pendua atau menggunakan kamus untuk pemetaan.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan DataFrame Berdasarkan Lajur, Memelihara Maklumat DataFrame Pertama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!