日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

pandas concat_pandas-数据合并-concat(最全参数解释,含代码和实例)

發(fā)布時間:2025/3/11 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 pandas concat_pandas-数据合并-concat(最全参数解释,含代码和实例) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

pandas中的concat的功能:

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

主要分為兩種情況

縱向合并:

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

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

橫向合并:(axis=1,)

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

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

需要重點掌握的概念:

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

  • 通過上面兩個簡單的例子,應(yīng)該能初步認(rèn)識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)

    結(jié)果:

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

    axis: {0,1,...},默認(rèn)值為 0。要連接沿軸。

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

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

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

    結(jié)果:

    keys︰ 序列,默認(rèn)為無。構(gòu)建分層索引使用通過的鍵作為最外面的級別。如果多個級別獲得通過,應(yīng)包含元組。

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

    rs = pd.concat([one,two],ignore_index=True,keys=["a 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

    總結(jié)

    以上是生活随笔為你收集整理的pandas concat_pandas-数据合并-concat(最全参数解释,含代码和实例)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。