欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python利用pandas進(jìn)行數(shù)據(jù)合并詳解

 更新時(shí)間:2023年11月15日 08:46:45   作者:懸崖上的金魚  
當(dāng)使用Python中的pandas庫時(shí),merge函數(shù)是用于合并(或連接)兩個(gè)數(shù)據(jù)框(DataFrame)的重要工具。它類似于SQL中的JOIN操作,下面我們就來看看它的具體操作吧

當(dāng)使用Python中的pandas庫時(shí),merge函數(shù)是用于合并(或連接)兩個(gè)數(shù)據(jù)框(DataFrame)的重要工具。它類似于SQL中的JOIN操作,允許你根據(jù)一個(gè)或多個(gè)鍵(key)將兩個(gè)數(shù)據(jù)框連接起來。

merge函數(shù)的基本語法如下

pd.merge(
    left,  # 要合并的左側(cè) DataFrame
    right,  # 要合并的右側(cè) DataFrame
    how='inner',  # 連接方式,包括 'left', 'right', 'outer', 'inner',默認(rèn)為 'inner'
    on=None,  # 用于連接的列名,必須存在于左側(cè)和右側(cè) DataFrame 中
    left_on=None,  # 左側(cè) DataFrame 用于連接的列名
    right_on=None,  # 右側(cè) DataFrame 用于連接的列名
    left_index=False,  # 如果為 True,則使用左側(cè) DataFrame 的索引作為連接鍵
    right_index=False,  # 如果為 True,則使用右側(cè) DataFrame 的索引作為連接鍵
    suffixes=('_x', '_y'),  # 字符串后綴,用于重疊列名的處理
    sort=False,  # 根據(jù)連接鍵對(duì)合并后的數(shù)據(jù)進(jìn)行排序
    copy=True,  # 如果為 False,可以提高性能,但是在某些情況下會(huì)修改原始數(shù)據(jù)
)

下面詳細(xì)解釋每個(gè)參數(shù)的用法:

  • leftright:要連接的左右兩個(gè)數(shù)據(jù)框,可以是DataFrame對(duì)象、Series對(duì)象或者帶有相同列名的字典。
  • on:指定用于連接的列名,如果兩個(gè)數(shù)據(jù)框中的列名相同,可以直接指定為列名,如果列名不同,可以通過left_onright_on參數(shù)分別指定左右兩個(gè)數(shù)據(jù)框的列名。
  • how:指定連接的方式,默認(rèn)為'inner'。可選的取值有:
    • 'inner':內(nèi)連接,只返回兩個(gè)數(shù)據(jù)框中鍵匹配的行。
    • 'outer':外連接,返回兩個(gè)數(shù)據(jù)框中所有的行,并用NaN填充缺失的值。
    • 'left':左連接,返回左側(cè)數(shù)據(jù)框中所有的行,并用NaN填充右側(cè)數(shù)據(jù)框中缺失的值。
    • 'right':右連接,返回右側(cè)數(shù)據(jù)框中所有的行,并用NaN填充左側(cè)數(shù)據(jù)框中缺失的值。
  • left_onright_on:如果要連接的列名不同,可以使用這兩個(gè)參數(shù)分別指定左右兩個(gè)數(shù)據(jù)框中用于連接的列名。
  • left_indexright_index:如果要根據(jù)索引進(jìn)行連接,可以將這兩個(gè)參數(shù)設(shè)為True。
  • sort:指定是否按照鍵對(duì)數(shù)據(jù)進(jìn)行排序,默認(rèn)為True。
  • suffixes:如果兩個(gè)數(shù)據(jù)框中存在重復(fù)的列名,可以使用這個(gè)參數(shù)為它們添加后綴以區(qū)分,默認(rèn)為('_x', '_y')。
  • copy:指定是否復(fù)制數(shù)據(jù),默認(rèn)為True。如果設(shè)置為False,可以避免復(fù)制數(shù)據(jù)而提高性能。
  • indicator:指定是否在結(jié)果數(shù)據(jù)框中添加一個(gè)表示連接方式的特殊列,默認(rèn)為False。
  • validate:指定連接操作的有效性檢查方式,可選的取值有None、'one_to_one'、'one_to_many'、'many_to_one'和'many_to_many'。

基本用法

merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱'])   # 連接方式,包括 'left', 'right', 'outer', 'inner',默認(rèn)為 'inner'
print(merged_df)

指定不同的列名

merged_df = pd.merge(left_df, right_df, how='outer', left_on='店鋪名稱', right_on='店鋪名稱2')
print(merged_df)

處理重復(fù)列名,相同列名加后綴

merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱'], suffixes=('_left', '_right'))
print(merged_df)

根據(jù)索引進(jìn)行合并

merged_df = pd.merge(left_df, right_df, how='outer', left_index=True, right_index=True)
print(merged_df)

 開啟一列標(biāo)記列,標(biāo)記數(shù)據(jù)來源

merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱','訂單號(hào)'], indicator=True)
print(merged_df)

完整代碼

import pandas as pd

# 讀取兩個(gè) Excel 文件
left_df = pd.read_excel('C:\\Users\\liuchunlin2\\Desktop\\數(shù)據(jù)1.xlsx',sheet_name='Sheet2')
right_df = pd.read_excel('C:\\Users\\liuchunlin2\\Desktop\\數(shù)據(jù)2.xlsx',sheet_name='Sheet2')

#基本用法
merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱'])   # 連接方式,包括 'left', 'right', 'outer', 'inner',默認(rèn)為 'inner'
print(merged_df)

#指定不同的列名
merged_df = pd.merge(left_df, right_df, how='outer', left_on='店鋪名稱', right_on='店鋪名稱2')
print(merged_df)

#處理重復(fù)列名,相同列名加后綴
merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱'], suffixes=('_left', '_right'))
print(merged_df)

#根據(jù)索引進(jìn)行合并
merged_df = pd.merge(left_df, right_df, how='outer', left_index=True, right_index=True)
print(merged_df)

#開啟一列標(biāo)記列,標(biāo)記數(shù)據(jù)來源
merged_df = pd.merge(left_df, right_df, how='outer', on=['店鋪名稱','訂單號(hào)'], indicator=True)
print(merged_df)

數(shù)據(jù)一:

數(shù)據(jù)二:

以上就是Python利用pandas進(jìn)行數(shù)據(jù)合并詳解的詳細(xì)內(nèi)容,更多關(guān)于Python pandas數(shù)據(jù)合并的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python中mpi4py的所有基礎(chǔ)使用案例詳解

    python中mpi4py的所有基礎(chǔ)使用案例詳解

    這篇文章主要介紹了python中mpi4py的所有基礎(chǔ)使用,本文通過10個(gè)案例給大家詳細(xì)講解,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • python實(shí)現(xiàn)zabbix發(fā)送短信腳本

    python實(shí)現(xiàn)zabbix發(fā)送短信腳本

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)zabbix發(fā)送短信腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • 使用python serial 獲取所有的串口名稱的實(shí)例

    使用python serial 獲取所有的串口名稱的實(shí)例

    今天小編就為大家分享一篇使用python serial 獲取所有的串口名稱的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Matplotlib實(shí)現(xiàn)各種條形圖繪制

    Matplotlib實(shí)現(xiàn)各種條形圖繪制

    這篇文章主要介紹了Matplotlib實(shí)現(xiàn)各種條形圖繪制,文章通過利用 plt.bar 方法實(shí)現(xiàn)各種條形圖繪制,內(nèi)容詳細(xì)具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • 使用Python 統(tǒng)計(jì)文件夾內(nèi)所有pdf頁數(shù)的小工具

    使用Python 統(tǒng)計(jì)文件夾內(nèi)所有pdf頁數(shù)的小工具

    這篇文章主要介紹了Python 統(tǒng)計(jì)文件夾內(nèi)所有pdf頁數(shù)的小工具,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • python中的flask框架Jinja?模板入門教程

    python中的flask框架Jinja?模板入門教程

    這篇文章主要介紹了?python中的flask框架Jinja?模板入門,Jinja?模板其實(shí)是?html?文件,一般情況下放在?Flask?工程的?/templates?目錄下,對(duì)python?flask?Jinja?模板相關(guān)知識(shí)感興趣的朋友一起看看吧
    2022-04-04
  • 將 Ubuntu 16 和 18 上的 python 升級(jí)到最新 python3.8 的方法教程

    將 Ubuntu 16 和 18 上的 python 升級(jí)到最新 python3.8 的方法教程

    這篇文章主要介紹了如何將 Ubuntu 16 和 18 上的 python 升級(jí)到最新 3.8 版,本文通過實(shí)例代碼相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 何用Python實(shí)現(xiàn)一個(gè) “系統(tǒng)聲音” 的實(shí)時(shí)律動(dòng)掛件

    何用Python實(shí)現(xiàn)一個(gè) “系統(tǒng)聲音” 的實(shí)時(shí)律動(dòng)掛件

    這篇文章將給大家介紹了如何用 Python 實(shí)現(xiàn)一個(gè) “系統(tǒng)聲音” 的實(shí)時(shí)律動(dòng)掛件,采集后直接實(shí)時(shí)地在電腦上繪制波形動(dòng)畫,主要是用來作為 FL Studio 播放時(shí)的一個(gè)桌面小掛件,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下
    2024-01-01
  • python 使用cx-freeze打包程序的實(shí)現(xiàn)

    python 使用cx-freeze打包程序的實(shí)現(xiàn)

    這篇文章主要介紹了python 使用cx-freeze打包程序的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • python實(shí)現(xiàn)交并比IOU教程

    python實(shí)現(xiàn)交并比IOU教程

    這篇文章主要介紹了python實(shí)現(xiàn)交并比IOU教程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04

最新評(píng)論