Jadual Kandungan
gabung()
1 Gabungan konvensional
②Kaedah 2
Parameter penting
Kaedah gabung kiri kanan luar dalam
2. Gabungan banyak-dengan-satu
3. Gabungan banyak-ke-banyak
concat()
1.相同字段的表首位相连
2.横向表合并(行对齐)
3.交叉合并
Rumah pembangunan bahagian belakang Tutorial Python Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

May 07, 2023 pm 09:04 PM
python concat() merge()

    gabung()

    1 Gabungan konvensional

    ①Kaedah 1

    Nyatakan lajur rujukan , berdasarkan lajur ini, gabungkan lajur lain.

    import pandas as pd
    
    df1 = pd.DataFrame({'id': ['001', '002', '003'],
                        'num1': [120, 101, 104],
                        'num2': [110, 102, 121],
                        'num3': [105, 120, 113]})
    df2 = pd.DataFrame({'id': ['001', '002', '003'],
                        'num4': [80, 86, 79]})
    print(df1)
    print("=======================================")
    print(df2)
    print("=======================================")
    df_merge = pd.merge(df1, df2, on='id')
    print(df_merge)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    ②Kaedah 2

    Untuk mencapai gabungan ini, anda juga boleh bergabung mengikut indeks, iaitu, gunakan lajur indeks sebagai asas. Hanya tetapkan indeks_kiri dan indeks_kanan kepada Benar
    . (Kedua-dua left_index dan right_index lalai kepada False. left_index bermaksud jadual kiri adalah berdasarkan indeks data jadual kiri dan right_index bermaksud jadual kanan adalah berdasarkan indeks data jadual kanan.)

    import pandas as pd
    
    df1 = pd.DataFrame({'id': ['001', '002', '003'],
                        'num1': [120, 101, 104],
                        'num2': [110, 102, 121],
                        'num3': [105, 120, 113]})
    df2 = pd.DataFrame({'id': ['001', '002', '003'],
                        'num4': [80, 86, 79]})
    print(df1)
    print("=======================================")
    print(df2)
    print("=======================================")
    
    df_merge = pd.merge(df1, df2, left_index=True, right_index=True)
    print(df_merge)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    Berbanding dengan kaedah ①, perbezaannya ialah, seperti yang ditunjukkan dalam rajah, terdapat lajur pendua dalam data yang digabungkan mengikut kaedah ②.

    Parameter penting

    pd.merge(right,how=‘inner’, on=“None”, left_on=“None”, right_on=“None”, left_index= False, right_index=False )

    参数描述
    left左表,合并对象,DataFrame或Series
    right右表,合并对象,DataFrame或Series
    how合并方式,可以是left(左合并), right(右合并), outer(外合并), inner(内合并)
    on基准列 的列名
    left_on左表基准列列名
    right_on右表基准列列名
    left_index左列是否以index为基准,默认False,否
    right_index右列是否以index为基准,默认False,否

    Antaranya, indeks_kiri dan indeks_kanan tidak boleh dinyatakan pada masa yang sama seperti pada.

    Kaedah gabung kiri kanan luar dalam

    Sediakan data‘

    Sediakan set data baharu:

    import pandas as pd
    
    df1 = pd.DataFrame({'id': ['001', '002', '003'],
                        'num1': [120, 101, 104],
                        'num2': [110, 102, 121],
                        'num3': [105, 120, 113]})
    df2 = pd.DataFrame({'id': ['001', '004', '003'],
                        'num4': [80, 86, 79]})
    print(df1)
    print("=======================================")
    print(df2)
    print("=======================================")
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    dalaman (lalai)

    Menggunakan persilangan kunci daripada kedua-dua set data

    rreee

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    luar

    Kesatuan menggunakan kunci daripada kedua-dua set data

    df_merge = pd.merge(df1, df2, on='id')
    print(df_merge)
    Salin selepas log masuk
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    kiri

    Gunakan kekunci daripada set data kiri

    df_merge = pd.merge(df1, df2, on='id', how="outer")
    print(df_merge)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    kanan

    Gunakan kekunci daripada set data sebelah kanan

    df_merge = pd.merge(df1, df2, on='id', how='left')
    print(df_merge)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    2. Gabungan banyak-dengan-satu

    df_merge = pd.merge(df1, df2, on='id', how='right')
    print(df_merge)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    Seperti yang ditunjukkan dalam rajah, terdapat data id1 pendua dalam df2.

    Gabung

    import pandas as pd
    
    df1 = pd.DataFrame({'id': ['001', '002', '003'],
                        'num1': [120, 101, 104],
                        'num2': [110, 102, 121],
                        'num3': [105, 120, 113]})
    df2 = pd.DataFrame({'id': ['001', '001', '003'],
                        'num4': [80, 86, 79]})
    print(df1)
    print("=======================================")
    print(df2)
    print("=======================================")
    Salin selepas log masuk

    Hasil gabungan adalah seperti yang ditunjukkan dalam rajah:

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    Masih menggunakan kaedah Inner lalai, menggunakan data daripada kedua-dua set data Persilangan kekunci. Dan baris dengan kunci pendua akan ditunjukkan sebagai berbilang baris dalam hasil gabungan.

    3. Gabungan banyak-ke-banyak

    Sebagai contoh, terdapat berbilang baris dengan ID pendua dalam Carta 1 dan Jadual 2.

    df_merge = pd.merge(df1, df2, on='id')
    print(df_merge)
    Salin selepas log masuk
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    import pandas as pd
    df1 = pd.DataFrame({'id': ['001', '002', '002', '002', '003'],
                        'num1': [120, 101, 104, 114, 123],
                        'num2': [110, 102, 121, 113, 126],
                        'num3': [105, 120, 113, 124, 128]})
    df2 = pd.DataFrame({'id': ['001', '001', '002', '003', '001'],
                        'num4': [80, 86, 79, 88, 93]})
    print(df1)
    print("=======================================")
    print(df2)
    print("=======================================")
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    concat()

    pd.concat(objs, axis=0, join= ‘luar’, ignore_index:bool=False,keys=None,levels=None,names=None, verify_integrity:bool=False,sort:bool=False,copy:bool=True)

    参数描述
    objsSeries,DataFrame或Panel对象的序列或映射
    axis默认为0,表示列。如果为1则表示行。
    join默认为"outer",也可以为"inner"
    ignore_index默认为False,表示保留索引(不忽略)。设为True则表示忽略索引。

    其他重要参数通过实例说明。

    1.相同字段的表首位相连

    首先准备三组DataFrame数据:

    import pandas as pd
    df1 = pd.DataFrame({'id': ['001', '002', '003'],
                        'num1': [120, 114, 123],
                        'num2': [110, 102, 121],
                        'num3': [113, 124, 128]})
    df2 = pd.DataFrame({'id': ['004', '005'],
                        'num1': [120, 101],
                        'num2': [113, 126],
                        'num3': [105, 128]})
    df3 = pd.DataFrame({'id': ['007', '008', '009'],
                        'num1': [120, 101, 125],
                        'num2': [113, 126, 163],
                        'num3': [105, 128, 114]})
    
    
    print(df1)
    print("=======================================")
    print(df2)
    print("=======================================")
    print(df3)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    合并

    dfs = [df1, df2, df3]
    result = pd.concat(dfs)
    print(result)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    如果想要在合并后,标记一下数据都来自于哪张表或者数据的某类别,则也可以给concat加上 参数keys

    result = pd.concat(dfs, keys=['table1', 'table2', 'table3'])
    print(result)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    此时,添加的keys与原来的index组成元组,共同成为新的index。

    print(result.index)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    2.横向表合并(行对齐)

    准备两组DataFrame数据:

    import pandas as pd
    df1 = pd.DataFrame({'num1': [120, 114, 123],
                        'num2': [110, 102, 121],
                        'num3': [113, 124, 128]}, index=['001', '002', '003'])
    df2 = pd.DataFrame({'num3': [117, 120, 101, 126],
                        'num5': [113, 125, 126, 133],
                        'num6': [105, 130, 128, 128]}, index=['002', '003', '004', '005'])
    
    print(df1)
    print("=======================================")
    print(df2)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    当axis为默认值0时:

    result = pd.concat([df1, df2])
    print(result)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    横向合并需要将axis设置为1

    result = pd.concat([df1, df2], axis=1)
    print(result)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    对比以上输出差异。

    • axis=0时,即默认纵向合并时,如果出现重复的行,则会同时体现在结果中

    • axis=1时,即横向合并时,如果出现重复的列,则会同时体现在结果中。

    3.交叉合并

    result = pd.concat([df1, df2], axis=1, join='inner')
    print(result)
    Salin selepas log masuk

    Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?

    Atas ialah kandungan terperinci Bagaimana untuk menggabungkan dan menyertai data menggunakan DataFrame dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    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

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    AI Hentai Generator

    AI Hentai Generator

    Menjana ai hentai secara percuma.

    Artikel Panas

    R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
    2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Repo: Cara menghidupkan semula rakan sepasukan
    4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
    Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
    4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

    Alat panas

    Notepad++7.3.1

    Notepad++7.3.1

    Editor kod yang mudah digunakan dan percuma

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    Hantar Studio 13.0.1

    Hantar Studio 13.0.1

    Persekitaran pembangunan bersepadu PHP yang berkuasa

    Dreamweaver CS6

    Dreamweaver CS6

    Alat pembangunan web visual

    SublimeText3 versi Mac

    SublimeText3 versi Mac

    Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

    Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Bagaimana untuk menyelesaikan masalah kebenaran yang dihadapi semasa melihat versi Python di Terminal Linux? Apr 01, 2025 pm 05:09 PM

    Penyelesaian kepada Isu Kebenaran Semasa Melihat Versi Python di Terminal Linux Apabila anda cuba melihat versi Python di Terminal Linux, masukkan Python ...

    Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Bagaimana cara menyalin seluruh lajur satu data ke dalam data data lain dengan struktur yang berbeza di Python? Apr 01, 2025 pm 11:15 PM

    Apabila menggunakan Perpustakaan Pandas Python, bagaimana untuk menyalin seluruh lajur antara dua data data dengan struktur yang berbeza adalah masalah biasa. Katakan kita mempunyai dua DAT ...

    Python Hourglass Graph Lukisan: Bagaimana untuk mengelakkan kesilapan yang tidak ditentukan? Python Hourglass Graph Lukisan: Bagaimana untuk mengelakkan kesilapan yang tidak ditentukan? Apr 01, 2025 pm 06:27 PM

    Bermula dengan Python: Lukisan Grafik Hourglass dan Pengesahan Input Artikel ini akan menyelesaikan masalah definisi berubah -ubah yang dihadapi oleh pemula python dalam program lukisan grafik Hourglass. Kod ...

    Pembangunan Aplikasi Desktop Cross-Platform Python: Perpustakaan GUI mana yang terbaik untuk anda? Pembangunan Aplikasi Desktop Cross-Platform Python: Perpustakaan GUI mana yang terbaik untuk anda? Apr 01, 2025 pm 05:24 PM

    Pilihan Perpustakaan Pembangunan Aplikasi Desktop Python Python Banyak pemaju Python ingin membangunkan aplikasi desktop yang boleh dijalankan pada kedua-dua sistem Windows dan Linux ...

    Adakah Google dan AWS menyediakan sumber imej Pypi awam? Adakah Google dan AWS menyediakan sumber imej Pypi awam? Apr 01, 2025 pm 05:15 PM

    Ramai pemaju bergantung kepada PYPI (PythonPackageIndex) ...

    Bagaimana cara mengira dan menyusun set data produk yang besar di Python? Bagaimana cara mengira dan menyusun set data produk yang besar di Python? Apr 01, 2025 pm 08:03 PM

    Penukaran dan Statistik Data: Pemprosesan yang cekap bagi set data besar Artikel ini akan memperkenalkan secara terperinci bagaimana untuk menukar senarai data yang mengandungi maklumat produk kepada yang lain yang mengandungi ...

    Bagaimana untuk mengoptimumkan pemprosesan imej resolusi tinggi di Python untuk mencari kawasan bulat putih yang tepat? Bagaimana untuk mengoptimumkan pemprosesan imej resolusi tinggi di Python untuk mencari kawasan bulat putih yang tepat? Apr 01, 2025 pm 06:12 PM

    Bagaimana untuk mengendalikan imej resolusi tinggi di Python untuk mencari kawasan putih? Memproses gambar resolusi tinggi 9000x7000 piksel, bagaimana untuk mencari dua gambar dengan tepat ...

    Bagaimana untuk menyelesaikan masalah pengekodan nama fail semasa menyambung ke pelayan FTP di Python? Bagaimana untuk menyelesaikan masalah pengekodan nama fail semasa menyambung ke pelayan FTP di Python? Apr 01, 2025 pm 06:21 PM

    Apabila menggunakan Python untuk menyambung ke pelayan FTP, anda mungkin menghadapi masalah pengekodan apabila mendapatkan fail dalam direktori yang ditentukan dan memuat turunnya, terutamanya teks pada pelayan FTP ...

    See all articles