pandas concat_pandas-數據合并-concat(最全參數解釋,含代碼和實例)

pandas中的concat的功能:

假設你現在需要將多個數據合并,前提是:這幾個文件列名都一致,也就是說這幾個文件格式完全一樣,只是數據不太一樣,類似于合并多個文件這種,實際數據分析中也會遇到這種情況,那該怎么做呢?(可能也會遇到格式不一樣的情況,當然也是可以合并的正文也會講解)下面來一起學習下在pandas中如何快速合并文件:

主要分為兩種情況

縱向合并:

需要注意的是,axis=0也就是默認值的時候,合并的時候是按照兩個數據的列名稱作為鍵來和合并的。

s1 = pd.Series(['a', 'b'])s2 = pd.Series(['c', 'd'])pd.concat([s1, s2])
1eca0741dabba736bc42d1fffda61335.png

橫向合并:(axis=1,)

類似于merge,但是和merge也不一樣,如果設置axis=1合并的時候是按照索引來合并的,merge可以設置左右兩個數據的合并鍵,這點要區分。

result = pd.concat([df1, df4], axis=1)
65a6fc0f5c94a908850d7f89276ee6d4.png

需要重點掌握的概念:

  1. concat和merge不一樣,雖然都是合并,但是merge更多的是數據匹配,根據共同的鍵來匹配,和sql中的查詢很類似,和excel中的vlookup很像,而concat是數據合并,不需要設置合并的鍵,
  2. 合并的keys:axis=0是按照列名,axis=1是按照索引來合并
  3. concat的概念不僅存在于數據合并,在數據分組groupby中也隱藏著它的蹤跡,先分組,每個分組統計,然后合并,其意義與我們合并數據是一樣的
  4. 當axis=1的時候也就是橫向合并,它的意義和merge很類似,需要好好區分

通過上面兩個簡單的例子,應該能初步認識concat

下面通過實例完整的掌握這個知識點:

pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,

keys=None, levels=None, names=None, verify_integrity=False,

copy=True)

最簡單的縱向合并(有人也叫軸向合并,但是我總分不清楚,就叫它縱向合并吧)

import pandas as pdone = pd.DataFrame({ 'Name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 'subject_id':['sub1','sub2','sub4','sub6','sub5'], 'Marks_scored':[98,90,87,69,78]}, index=[1,2,3,4,5])two = pd.DataFrame({ 'Name': ['Billy', 'Brian', 'Bran', 'Bryce', 'Betty'], 'subject_id':['sub2','sub4','sub3','sub6','sub5'], 'Marks_scored':[89,80,79,97,88]}, index=[1,2,3,4,5])rs = pd.concat([one,two])print(rs)

結果:

41680302d7b990a29ac2123096b2a59e.png

objs︰ 傳入一個需要合并的序列

axis: {0,1,...},默認值為 0。要連接沿軸。

ignore_index︰ 布爾值、 默認 False。這個參數很重要,縱向合并多個文件時,默認為原來的索引,這樣勢必導致會有重復的索引值,如果想要一個全新的索引,就設置這個參數為True

在沒有設置這個參數的時候可以看到結果中的索引均為各自原先的索引,下面看看設置后的:

rs = pd.concat([one,two],ignore_index=True)

結果:

08a33e5e317a533f098e3fb1e0be9eaf.png

keys︰ 序列,默認為無。構建分層索引使用通過的鍵作為最外面的級別。如果多個級別獲得通過,應包含元組。

如果你寫成下面這種方式,keys的結果會被ignore覆蓋掉

rs = pd.concat([one,two],ignore_index=True,keys=["a

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/542578.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/542578.shtml
英文地址,請注明出處:http://en.pswp.cn/news/542578.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java中的de是什么_【轉】java中main函數解析

源地址:http://www.cnblogs.com/xwdreamer/archive/2012/04/09/2438845.html從寫java至今,寫的最多的可能就是主函數public static void main(String[] args) {}但是以前一直都沒有問自己,為什么要這么寫,因為在c語言中就沒有這樣…

JAVA多線程(一)線程安全問題產生的原因

JAVA線程內存與主存間映射示意圖Java內存模型中規定了所有的變量都存儲在主內存中,每條線程還有自己的工作內存,線程的工作內存中保存了該線程使用的變量到主內存副本拷貝,線程對變量的所有操作(讀取、賦值)都必須在工…

兩頂點的路徑長度為k_計算兩個頂點之間的所有可能路徑

兩頂點的路徑長度為kWhat to Learn? 學什么? How to count all possible paths between two vertices? 如何計算兩個頂點之間的所有可能路徑? In the graph there are many alternative paths from vertex 0 to vertex 4 在圖中,有許多從…

php debug_print_backtrace,php中debug_backtrace、debug_print_backtrace和匿名函數用法實例

本文實例講述了php中debug_backtrace、debug_print_backtrace和匿名函數用法。分享給大家供大家參考。具體分析如下:debug_print_backtrace() 是一個很低調的函數,很少有人注意過它.不過當我們對著一個對象調用另一個對象再調用其它的對象和文件中的一個函數出錯時,…

covariance matrix r語言_時間序列分析|ARIMAX模型分步驟詳解和R中實踐

這是關于時間序列的第N篇文章,本文將介紹ARIMAX模型,簡單來說就是在ARIMA的基礎上增加一個外生變量。ARIMAX和ARIMA相比在理論上沒有太多新的內容,所以本文直接介紹在R里怎么一步一步跑ARIMAX。在閱讀這篇文章前,需要對ARIMA有一定…

linux系統編程之文件與I/O(六):fcntl 函數與文件鎖

2013-05-14 11:26 8290人閱讀 評論(2) 收藏 舉報分類:linux系統編程(19) 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 一、fcntl函數 功能:操縱文件描述符,改變已打開的文件的屬性 int…

python 使用異常函數_您如何測試Python函數引發異常?

python 使用異常函數This article elaborates on how to implement a test case for a function that raises an exception. 本文詳細介紹了如何為引發異常的函數實現測試用例 。 Consider the following function: 考慮以下功能: import redef check_email_forma…

php 遠程圖片合拼,PHP實現將幾張照片拼接到一起的合成圖片功能【便于整體打印輸出】...

本文實例講述了PHP實現將幾張照片拼接到一起的合成圖片功能。共享給大家供大家參考,詳細如下:/*** 作品合成程序* 針對單面,封面不做特殊處理*/$src_path $argv[1]; // php該文件,第一個參數是文件夾名(作品集),可相對…

bandizip最后一個無廣告版本_如果非要選擇一款壓縮軟件的話——Bandizip

全世界只有不到0.00~1 % 的人關注了我們得到你的關注是小幫的幸運壓縮解壓軟件是電腦一個必備軟甲,前面的文章介紹了一款開源小巧無廣告的壓縮解壓軟件windows工具軟件選擇之壓縮軟件——7-Zip,如果有人用不慣的話可以試試今天的這款。Bandizip 是一款來…

[MVC學習筆記]1.項目結構搭建及單個類在各個層次中的實現

新人剛開始學習ASP.NET MVC,若有不足之處希望能得到您的指點,不勝感激! 先來一張項目的層級結構圖: Model:模型層,主要是各種類型、枚舉以及ORM框架,框架完成數據庫和實體類的映射。項目中選用了微軟的開源…

日期getUTCSeconds()方法以及JavaScript中的示例

JavaScript日期getUTCSeconds()方法 (JavaScript Date getUTCSeconds() method) getUTCSeconds() method is a Dates class method and it is used to get seconds from the current time according to the UTC (Universal time coordinated). getUTCSeconds()方法是Date的類方…

dedecms 在模板里引入php文件夾,dedecms如何添加并引入php文件

前言&#xff1a;有些時候我們需要創建一些單獨的PHP文件&#xff0c;但是隨便放入的PHP文件是不能夠編譯織夢 dedecms的標簽的&#xff0c;所以我們需要引入織夢標簽的編譯引擎方案。例如&#xff0c;我們在根目錄創建 example.php&#xff0c;代碼如下&#xff1a;<?php …

mybatisplus代碼生成器_想做時間管理大師?你可以試試Mybatis Plus代碼生成器

1. 前言對于寫Crud的老司機來說時間非常寶貴&#xff0c;一些樣板代碼寫不但費時費力&#xff0c;而且枯燥無味。經常有小伙伴問我&#xff0c;胖哥你怎么天天那么有時間去搞新東西&#xff0c;透露一下秘訣唄。好吧&#xff0c;今天就把Mybatis-plus的代碼生成器分享出來&…

安裝Oracle 11g RAC R2 之Linux DNS 配置

Oracle 11g RAC 集群中引入了SCAN(Single Client Access Name)的概念&#xff0c;也就是指集群的單客戶端訪問名稱。SCAN 這個特性為客戶端提供了單一的主機名&#xff0c;用于訪問集群中運行的 Oracle 數據庫。如果您在集群中添加或刪除節點&#xff0c;使用 SCAN 的客戶端無需…

c++ websocket客戶端_websocket使用

websocket使用一、介紹在項目開發過程中&#xff0c;很多時候&#xff0c;我們不可避免的需要實現的一個功能&#xff1a; 服務端實時發送信息給客戶端。比如實時公告、實時訂單通知、實時報警推送等等&#xff0c;登錄后的客戶端需要知道與它相關的實時信息&#xff0c;以便進…

漢子編碼比字母編碼長_字母/博客作者編碼問題(使用動態編程)

漢子編碼比字母編碼長Problem statement: 問題陳述&#xff1a; Shivang is a blog writer and he is working on two websites simultaneously. He has to write two types of blogs which are: Shivang是一位博客作家&#xff0c;他同時在兩個網站上工作。 他必須寫兩種類型…

php parent報錯,mac brew 安裝php擴展報錯:parent directory is world writable but not sticky

$ brew install php70-mcrypt報錯&#xff1a;Error: parent directory is world writable but not sticky搜索到github的答案https://github.com/Homebrew/legacy-homebrew/issues/40345原因&#xff1a;/tmp目錄權限不對$ ls -ld /private/tmp打印出來 /private/tmp 被標黃了…

在cordova中使用HTML5的多文件上傳

2019獨角獸企業重金招聘Python工程師標準>>> 我們先看看linkface給開放的接口&#xff1a; 字段類型必需描述api_idstring是API 賬戶api_secretstring是API 密鑰selfie_filefile見下方注釋需上傳的圖片文件 1&#xff0c;上傳本地圖片進行檢測時選取此參數selfie_ur…

python dataframe切片_python pandas dataframe 行列選擇,切片操作方法

SQL中的select是根據列的名稱來選取&#xff1b;Pandas則更為靈活&#xff0c;不但可根據列名稱選取&#xff0c;還可以根據列所在的position&#xff08;數字&#xff0c;在第幾行第幾列&#xff0c;注意pandas行列的position是從0開始&#xff09;選取。相關函數如下&#xf…

php根據設備判斷訪問,PHP判斷設備訪問來源

/*** 判斷用戶請求設備是否是移動設備* return bool*/function isMobile() {//如果有HTTP_X_WAP_PROFILE則一定是移動設備if (isset($_SERVER[HTTP_X_WAP_PROFILE])) {return true;}//如果via信息含有wap則一定是移動設備,部分服務商會屏蔽該信息if (isset($_SERVER[HTTP_VIA])…