最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

利用pandas如何實現類似sql中的left join操作

 更新時間:2023年06月13日 10:30:33   作者:slaythedragon  
這篇文章主要介紹了利用pandas如何實現類似sql中的left join操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

pandas實現類似sql中的left join操作

使用pandas的merge函數

import pandas as pd
df1 = pd.read_csv(r"1.csv",index_col=0)
df2 = pd.read_csv(r"2.csv",index_col=0)
# on中填寫根據哪個字段來進行連接,how為left代表left join
df = pd.merge(df1,df2, on='LocationID',how='left')
# print(df)
# 只取出這些列,組成新的DataFrame,帶有col_name
df = df[['LocationName','Description','ActiveFlag','owner name','the location nature']]
# 將列進行重命名
new_col = ['location code', 'location name', 'ActiveFlag','owner name','the location nature']
df.columns = new_col
print(df)
# 導出為csv
df.to_csv(path_or_buf=r"3.csv", encoding="utf_8_sig")

pandas數據拼接操作merge、join、concat

在做數據處理過程中會遇到多個數據集之間進行拼接的操作,這里由于平時都是用的Pandas讀取的數據集,所以一般是針對的是DataFrame類型的數據進行拼接操作。

1. merge

用于通過一個或多個鍵將兩個數據集的行連接起來,類似于 SQL 中的 JOIN。

該函數的典型應用場景是,針對同一個主鍵存在兩張包含不同字段的表,現在我們想把他們整合到一張表里。

在此典型情況下,結果集的行數并沒有增加,列數則為兩個元數據的列數和減去連接鍵的數量。

df.merge(right, how='inner', on=None, left_on=None,
         right_on=None, left_index=False, right_index=False, 
         sort=False, suffixes=('_x', '_y'), copy=True)

參數解釋: 

  • right: 要連接的目標數據,類型為DataFrame或者帶列名的Series 
  • how :連接方式,類似sql語句中的(left ,right,inner,outer),這里默認為'inner', 可選的參數有l(wèi)eft, right , inner , outer
  • on : 連接的列名或者index, 也就是指明2個要連接的對象之間通過哪個列名或者索引名進行連接。
  • left_on : 指定左邊的DataFrame以哪個列名或者索引名進行連接
  • right_on :指定右邊的DataFrame以哪個列名或者索引名進行連接
  • left_index:用左邊的DataFrame當做連接Key
  • right_index:用右邊的DataFrame當做連接Key
  • sort:按照字典順序對連接Key進行排序,默認為False,默認連接鍵的順序取決于連接類型
  • suffixes:連接后的列名默認帶下標 ('_x' ,  '_y')
  • copy:默認復制,如果設置為False,則盡可能的避免復制

a . 默認以相同的列名進行連接鍵 

2. join 

拼接列,主要用于索引上的合并,提供了一個簡便的方法用于將兩個DataFrame中的不同的列索引合并成為一個DataFrame

df.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)

參數解釋:

  • other:另一個待拼接的DataFrame或者有名稱列表的Series 
  • on:連接的列名或者index, 也就是指明2個要連接的對象之間通過哪個列名或者索引名進行連接。
  • how:連接方式,類似sql語句中的(left ,right,inner,outer),這里默認為'left', 可選的參數有l(wèi)eft, right , inner , outer
  • lsuffix :  左邊的連接Key要用的下標
  • rsuffix : 右邊的連接Key要用的下標
  • sort:對拼接后的列名按照字典順序排序,默認為False,False的時候,保留按照左邊的DataFrame進行排序的順序。

3. concat

可以沿著一條軸將多個對象堆疊到一起

concat方法相當于數據庫中的全連接(UNION ALL),可以指定按某個軸進行連接,也可以指定連接的方式join(outer,inner 只有這兩種)。

與數據庫不同的是concat不會去重,要達到去重的效果可以使用drop_duplicates方法

pandas.concat(objs, axis=0, join='outer',
              ignore_index=False, keys=None, levels=None,
              names=None, verify_integrity=False,copy=True)

參數解釋:

  • objs: 需要連接的對象集合,一般是列表或字典;
  • axis: 0代表index 連接,1代表列連接 ,默認為0 
  • join:連接方式 ,默認為‘outer’,還可以選擇‘inner’
  • ignore_index:默認為False,如果為True,則是指忽略之前的Index,直接按照默認分配index從0-N-1進行分配,對于結合后的index并沒有啥意義的時候比較適用,用來重建索引
  • keys:用來創(chuàng)建層次化索引
  • levels: 層級,用來在列上進行劃分
  • names:指定levels中的列名
  • verify_integrity :確定新結合的數據是否有重復值,但是會很耗費資源
  • copy:復制數據 

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 解決安裝pytorch運行import torch出錯ModuleNotFoundError:No module named'torch'問題

    解決安裝pytorch運行import torch出錯ModuleNotFoundError:No 

    安裝PyTorch時遇到`ModuleNotFoundError: No module named 'torch'`錯誤,通常是由于Python版本不匹配或conda未升級導致的,解決方法是安裝特定版本的PyTorch,并使用以下代碼檢查安裝是否成功
    2025-12-12
  • Python使用mmap實現內存映射文件操作

    Python使用mmap實現內存映射文件操作

    內存映射通常可以提高I/O的性能,本文主要介紹了Python使用mmap實現內存映射文件操作,分享給大家,感興趣的可以了解一下
    2021-06-06
  • 在Python?中將類對象序列化為JSON

    在Python?中將類對象序列化為JSON

    這篇文章主要介紹了在Python?中將類對象序列化為JSON,序列化是將對象轉換為可以在以后保存和檢索介質中的過程,下文具體的內容分享,需要的朋友可以參考一下
    2022-04-04
  • 在Python中使用next()方法操作文件的教程

    在Python中使用next()方法操作文件的教程

    這篇文章主要介紹了在Python中使用next()方法操作文件的教程,是Python入門中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • python使用json序列化datetime類型實例解析

    python使用json序列化datetime類型實例解析

    這篇文章主要介紹了python使用json序列化datetime類型實例解析,分享了相關代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • Python實現定時自動關閉的tkinter窗口方法

    Python實現定時自動關閉的tkinter窗口方法

    今天小編就為大家分享一篇Python實現定時自動關閉的tkinter窗口方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-02-02
  • Python中index()函數與find()函數的區(qū)別詳解

    Python中index()函數與find()函數的區(qū)別詳解

    這篇文章主要介紹了Python中index()函數與find()函數的區(qū)別詳解,Python index()方法檢測字符串中是否包含子字符串 str ,如果指定beg開始和end結束范圍,則檢查是否包含在指定范圍內,需要的朋友可以參考下
    2023-08-08
  • Python中用try-except-finally處理異常問題

    Python中用try-except-finally處理異常問題

    這篇文章主要介紹了Python中用try-except-finally處理異常問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • python關于os.walk函數查找windows文件方式

    python關于os.walk函數查找windows文件方式

    這篇文章主要介紹了python關于os.walk函數查找windows文件方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • windows下的pycharm安裝及其設置中文菜單

    windows下的pycharm安裝及其設置中文菜單

    這篇文章主要介紹了windows下的pycharm安裝及其設置中文菜單,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-04-04

最新評論

阳新县| 巴林右旗| 南丰县| 泉州市| 乐平市| 普定县| 本溪| 崇义县| 海伦市| 松阳县| 乌海市| 四子王旗| 耿马| 鸡泽县| 静乐县| 延庆县| 牙克石市| 博客| 莱西市| 泌阳县| 龙南县| 察隅县| 临安市| 吉林省| 万宁市| 隆林| 奈曼旗| 周口市| 左云县| 东山县| 兖州市| 瓦房店市| 大庆市| 海兴县| 长治县| 安西县| 金山区| 湛江市| 金川县| 霍邱县| 湖北省|