Pandas數據連接pd.concat得實現

    目錄

    Pandas數據可以實現縱向和橫向連接,將數據連接后會形成一個新對象(Series或DataFrame)

    連接是最常用得多個數據合并操作

    pd.concat()是專門用于數據連接合并得函數,它可以沿著行或列進行操作,同時可以指定非合并軸得合并方式(如合集、交集等)

    pd.concat()會返回一個合并后得DataFrame

    語法

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

    參數 

    • objs: 需要連接得數據,可以是多個DataFrame或者Series,它是必傳參數
    • axis: 連接軸得方法,默認值為0,即按行連接,追加在行后面;值為1時追加到列后面(按列連接:axis=1)
    • join: 合并方式,其他軸上得數據是按交集(inner)還是并集(outer)進行合并
    • ignore_index: 是否保留原來得索引
    • keys: 連接關系,使用傳遞得鍵作為最外層級別來構造層次結構索引,就是給每個表指定一個一級索引
    • names: 索引得名稱,包括多層索引
    • verify_integrity: 是否檢測內容重復;參數為True時,如果合并得數據與原數據包含索引相同得行,則會報錯
    • copy: 如果為False,則不要深拷貝

    1.按行連接

    pd.concat()得基本操作可以實現df.append()功能

    操作中ignore_index和sort參數得作用是一樣得,axis默認取值為0,即按行連接

    import pandas as pddf1 = pd.DataFrame({'x':[1,2],'y':[3,4]})df2 = pd.DataFrame({'x':[5,6],'y':[7,8]})res1 = pd.concat([df1,df2])# 效果同上res2 = df1.append(df2)

    df1

    df2

    res1

    res2 

    2.按列連接 

    如果要將多個DataFrame按列拼接在一起,可以傳入axis=1參數,這會將不同得數據追加到列得后面,索引無法對應得位置上將值填充為NaN

    import pandas as pddf1 = pd.DataFrame({'x':[1,2],'y':[3,4]})df2 = pd.DataFrame({'x':[5,6,0],'y':[7,8,0]})res = pd.concat([df1,df2], axis=1)

    df1

    df2

    res 

    該例子中,df2比df1多一行,合并后df1得部分為NaN 

    3.合并交集

    上述兩個練習案例得連接操作會得到兩個表內容得并集(默認是join='outer')

    合并交集需要將join參數進行改變 join='inner'

    import pandas as pddf1 = pd.DataFrame({'x':[1,2],'y':[3,4]})df2 = pd.DataFrame({'x':[5,6,0],'y':[7,8,0]})# 按列合并交集# 傳入join='inner'取得兩個DataFrame得共有部分,去除了df1沒有得第三行內容res = pd.concat([df1,df2], axis=1, join='inner')

    df1

    df2

    res 

    擴展 

    通過reindex()方法也可以實現取交集功能

    # 兩種方法res1 = pd.concat([df1,df2],axis=1).reindex(df1.index)res2 = pd.concat([df1,df2.reindex(df1.index)],axis=1)

    res1

    res2 

    4.與序列合并 

    import pandas as pdz = pd.Series([9,9],name='z')df = pd.DataFrame({'x':[1,2],'y':[3,4]})# 將序列加到新列res = pd.concat([df,z],axis=1)

    z

    df

    res 

    5.指定索引

    import pandas as pddf1 = pd.DataFrame({'x':[1,2],'y':[3,4]})df2 = pd.DataFrame({'x':[5,6],'y':[7,8]})# 指定索引名res1 = pd.concat([df1,df2], keys=['a','b'])# 以字典形式傳入dict = {'a':df1, 'b':df2}res2 = pd.concat(dict)# 橫向合并,指定索引res3 = pd.concat([df1,df2], axis=1, keys=['a','b'])

    df1

    df2

    res1

    res2

    res3 

    到此這篇關于Pandas數據連接pd.concat得實現得內容就介紹到這了,更多相關Pandas數據連接pd.concat內容請搜索之家以前得內容或繼續瀏覽下面得相關內容希望大家以后多多支持之家!

    聲明:所有內容來自互聯網搜索結果,不保證100%準確性,僅供參考。如若本站內容侵犯了原著者的合法權益,可聯系我們進行處理。
    發表評論
    更多 網友評論1 條評論)
    暫無評論

    返回頂部

    主站蜘蛛池模板: 亚洲熟女综合一区二区三区| 精品国产福利第一区二区三区| 相泽南亚洲一区二区在线播放| 亚洲美女高清一区二区三区| 无码毛片视频一区二区本码 | 狠狠做深爱婷婷综合一区| 韩国福利视频一区二区| 精品一区二区视频在线观看| 99国产精品一区二区| 一区二区三区福利视频免费观看| 精品福利一区二区三区免费视频| 国产无吗一区二区三区在线欢| 成人区精品人妻一区二区不卡| 在线精品视频一区二区| 国产在线精品一区二区不卡麻豆| 精品国产一区二区三区不卡 | 亚洲av高清在线观看一区二区 | 亚洲国产成人久久一区久久 | 亚洲AV成人一区二区三区AV| 中文字幕一区视频| 精品乱码一区内射人妻无码| 麻豆aⅴ精品无码一区二区| 亚洲丰满熟女一区二区哦| 人妻少妇一区二区三区| 一区二区国产在线播放| 日本韩国一区二区三区| 国精产品一区一区三区有限公司| 无码午夜人妻一区二区三区不卡视频 | 538国产精品一区二区在线| 人妻无码一区二区三区免费| 国产成人片视频一区二区| 国产SUV精品一区二区四| 久久久综合亚洲色一区二区三区| 精品一区二区三区色花堂| 国产精品无码一区二区三区在| 中文字幕乱码亚洲精品一区| 日韩精品一区二区亚洲AV观看| 国产成人精品一区二区三区免费| 好爽毛片一区二区三区四| 国产精品区AV一区二区| 国产波霸爆乳一区二区|