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

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

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

當(dāng)使用Python中的pandas庫時,merge函數(shù)是用于合并(或連接)兩個數(shù)據(jù)框(DataFrame)的重要工具。它類似于SQL中的JOIN操作,允許你根據(jù)一個或多個鍵(key)將兩個數(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ù)連接鍵對合并后的數(shù)據(jù)進(jìn)行排序
    copy=True,  # 如果為 False,可以提高性能,但是在某些情況下會修改原始數(shù)據(jù)
)

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

  • leftright:要連接的左右兩個數(shù)據(jù)框,可以是DataFrame對象、Series對象或者帶有相同列名的字典。
  • on:指定用于連接的列名,如果兩個數(shù)據(jù)框中的列名相同,可以直接指定為列名,如果列名不同,可以通過left_onright_on參數(shù)分別指定左右兩個數(shù)據(jù)框的列名。
  • how:指定連接的方式,默認(rèn)為'inner'??蛇x的取值有:
    • 'inner':內(nèi)連接,只返回兩個數(shù)據(jù)框中鍵匹配的行。
    • 'outer':外連接,返回兩個數(shù)據(jù)框中所有的行,并用NaN填充缺失的值。
    • 'left':左連接,返回左側(cè)數(shù)據(jù)框中所有的行,并用NaN填充右側(cè)數(shù)據(jù)框中缺失的值。
    • 'right':右連接,返回右側(cè)數(shù)據(jù)框中所有的行,并用NaN填充左側(cè)數(shù)據(jù)框中缺失的值。
  • left_onright_on:如果要連接的列名不同,可以使用這兩個參數(shù)分別指定左右兩個數(shù)據(jù)框中用于連接的列名。
  • left_indexright_index:如果要根據(jù)索引進(jìn)行連接,可以將這兩個參數(shù)設(shè)為True。
  • sort:指定是否按照鍵對數(shù)據(jù)進(jìn)行排序,默認(rèn)為True。
  • suffixes:如果兩個數(shù)據(jù)框中存在重復(fù)的列名,可以使用這個參數(shù)為它們添加后綴以區(qū)分,默認(rèn)為('_x', '_y')。
  • copy:指定是否復(fù)制數(shù)據(jù),默認(rèn)為True。如果設(shè)置為False,可以避免復(fù)制數(shù)據(jù)而提高性能。
  • indicator:指定是否在結(jié)果數(shù)據(jù)框中添加一個表示連接方式的特殊列,默認(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=['店鋪名稱','訂單號'], indicator=True)
print(merged_df)

完整代碼

import pandas as pd

# 讀取兩個 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=['店鋪名稱','訂單號'], indicator=True)
print(merged_df)

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

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

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

相關(guān)文章

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

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

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

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

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

    使用python serial 獲取所有的串口名稱的實例

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評論