中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么使用Pandas.concat連接DataFrame和Series

發布時間:2023-02-22 10:28:11 來源:億速云 閱讀:91 作者:iii 欄目:開發技術

這篇文章主要介紹了怎么使用Pandas.concat連接DataFrame和Series的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇怎么使用Pandas.concat連接DataFrame和Series文章都會有所收獲,下面我們一起來看看吧。

    pandas.concat的基本用法()
    指定要連接的對象:objs
    連接方向的指定(垂直/水平):axis
    指定連接方法(外部連接/內部連接):join
    pandas.DataFrame的連接
    pandas.Series的連接
    pandas.DataFrame和pandas.Series的連接
    使用以下的pandas.DataFrame和pandas.Series為例。

    import pandas as pd
    df1 = pd.DataFrame({'A': ['A1', 'A2', 'A3'],
                        'B': ['B1', 'B2', 'B3'],
                        'C': ['C1', 'C2', 'C3']},
                       index=['ONE', 'TWO', 'THREE'])
    print(df1)
    #         A   B   C
    # ONE    A1  B1  C1
    # TWO    A2  B2  C2
    # THREE  A3  B3  C3
    df2 = pd.DataFrame({'C': ['C2', 'C3', 'C4'],
                        'D': ['D2', 'D3', 'D4']},
                       index=['TWO', 'THREE', 'FOUR'])
    print(df2)
    #         C   D
    # TWO    C2  D2
    # THREE  C3  D3
    # FOUR   C4  D4
    s1 = pd.Series(['X1', 'X2', 'X3'], index=['ONE', 'TWO', 'THREE'], name='X')
    print(s1)
    # ONE      X1
    # TWO      X2
    # THREE    X3
    # Name: X, dtype: object
    s2 = pd.Series(['Y2', 'Y3', 'Y4'], index=['TWO', 'THREE', 'FOUR'], name='Y')
    print(s2)
    # TWO      Y2
    # THREE    Y3
    # FOUR     Y4
    # Name: Y, dtype: object


    pandas.concat的基本用法()
    指定要連接的對象:objs
    通過參數objs指定要連接的pandas.DataFrame和pandas.Series,指定類型為列表或元組。

    df_concat = pd.concat([df1, df2])
    print(df_concat)
    #          A    B   C    D
    # ONE     A1   B1  C1  NaN
    # TWO     A2   B2  C2  NaN
    # THREE   A3   B3  C3  NaN
    # TWO    NaN  NaN  C2   D2
    # THREE  NaN  NaN  C3   D3
    # FOUR   NaN  NaN  C4   D4

    要連接的對象的數量不限于兩個,可以是三個或更多。

    df_concat_multi = pd.concat([df1, df2, df1])
    print(df_concat_multi)
    #          A    B   C    D
    # ONE     A1   B1  C1  NaN
    # TWO     A2   B2  C2  NaN
    # THREE   A3   B3  C3  NaN
    # TWO    NaN  NaN  C2   D2
    # THREE  NaN  NaN  C3   D3
    # FOUR   NaN  NaN  C4   D4
    # ONE     A1   B1  C1  NaN
    # TWO     A2   B2  C2  NaN
    # THREE   A3   B3  C3  NaN

    結果是創建了一個新的對象,原始對象保持不變。

    連接方向的指定(垂直/水平):axis
    垂直或水平方向由axis參數指定。 如果axis = 0,則它們是垂直鏈接的。默認設置為axis = 0,因此可以省略不寫。

    df_v = pd.concat([df1, df2], axis=0)
    print(df_v)
    #          A    B   C    D
    # ONE     A1   B1  C1  NaN
    # TWO     A2   B2  C2  NaN
    # THREE   A3   B3  C3  NaN
    # TWO    NaN  NaN  C2   D2
    # THREE  NaN  NaN  C3   D3
    # FOUR   NaN  NaN  C4   D4

    axis = 1,水平方向上連接。

    df_h = pd.concat([df1, df2], axis=1)
    print(df_h)
    #          A    B    C    C    D
    # ONE     A1   B1   C1  NaN  NaN
    # TWO     A2   B2   C2   C2   D2
    # THREE   A3   B3   C3   C3   D3
    # FOUR   NaN  NaN  NaN   C4   D4

    指定連接方法(外部連接/內部連接):join
    參數join:指定列名(或行名)的并集,或者僅將公共部分保留。

    join ='outer’是外部連接。列名(或行名)形成一個聯合,保留所有列(或行)。它是默認設置,因此可以省略不寫。在這種情況下,原始對象中列(或行)不存在的值將由的缺少值NaN代替。

    join ='inner’是內部連接。僅保留具有相同列名(或行名)的列(或行)。

    df_v_out = pd.concat([df1, df2], join='outer')
    print(df_v_out)
    #          A    B   C    D
    # ONE     A1   B1  C1  NaN
    # TWO     A2   B2  C2  NaN
    # THREE   A3   B3  C3  NaN
    # TWO    NaN  NaN  C2   D2
    # THREE  NaN  NaN  C3   D3
    # FOUR   NaN  NaN  C4   D4
    df_v_in = pd.concat([df1, df2], join='inner')
    print(df_v_in)
    #         C
    # ONE    C1
    # TWO    C2
    # THREE  C3
    # TWO    C2
    # THREE  C3
    # FOUR   C4

    水平方向。

    df_h_out = pd.concat([df1, df2], axis=1, join='outer')
    print(df_h_out)
    #          A    B    C    C    D
    # FOUR   NaN  NaN  NaN   C4   D4
    # ONE     A1   B1   C1  NaN  NaN
    # THREE   A3   B3   C3   C3   D3
    # TWO     A2   B2   C2   C2   D2
    df_h_in = pd.concat([df1, df2], axis=1, join='inner')
    print(df_h_in)
    #         A   B   C   C   D
    # TWO    A2  B2  C2  C2  D2
    # THREE  A3  B3  C3  C3  D3

    01_Pandas.DataFrame的行名和列名的修改

    pandas.DataFrame的連接
    將pandas.DataFrames連接在一起時,返回的也是pandas.DataFrame類型的對象。

    df_concat = pd.concat([df1, df2])
    print(df_concat)
    #          A    B   C    D
    # ONE     A1   B1  C1  NaN
    # TWO     A2   B2  C2  NaN
    # THREE   A3   B3  C3  NaN
    # TWO    NaN  NaN  C2   D2
    # THREE  NaN  NaN  C3   D3
    # FOUR   NaN  NaN  C4   D4
    print(type(df_concat))
    # <class 'pandas.core.frame.DataFrame'>

    pandas.Series的連接
    如果是pandas.Series之間的連接,則垂直連接(默認值axis= 0)返回的也是pandas.Series類型的對象。

    s_v = pd.concat([s1, s2])
    print(s_v)
    # ONE      X1
    # TWO      X2
    # THREE    X3
    # TWO      Y2
    # THREE    Y3
    # FOUR     Y4
    # dtype: object
    print(type(s_v))
    # <class 'pandas.core.series.Series'>

    axis = 1時,水平方向連接,返回pandas.DataFrame類型的對象。

    s_h = pd.concat([s1, s2], axis=1)
    print(s_h)
    #          X    Y
    # FOUR   NaN   Y4
    # ONE     X1  NaN
    # THREE   X3   Y3
    # TWO     X2   Y2
    print(type(s_h))
    # <class 'pandas.core.frame.DataFrame'>

    也可以使用參數join。

    s_h_in = pd.concat([s1, s2], axis=1, join='inner')
    print(s_h_in)
    #         X   Y
    # TWO    X2  Y2
    # THREE  X3  Y3

    pandas.DataFrame和pandas.Series的連接
    對于pandas.DataFrame和pandas.Series連接,水平連接(axis= 1)將pandas.Series添加為新列。列名稱是pandas.Series的名稱。

    df_s_h = pd.concat([df1, s2], axis=1)
    print(df_s_h)
    #          A    B    C    Y
    # FOUR   NaN  NaN  NaN   Y4
    # ONE     A1   B1   C1  NaN
    # THREE   A3   B3   C3   Y3
    # TWO     A2   B2   C2   Y2

    也可以使用參數join。

    df_s_h_in = pd.concat([df1, s2], axis=1, join='inner')
    print(df_s_h_in)
    #         A   B   C   Y
    # TWO    A2  B2  C2  Y2
    # THREE  A3  B3  C3  Y3

    垂直連接(axis = 0)。

    df_s_v = pd.concat([df1, s2])
    print(df_s_v)
    #          A    B    C    0
    # ONE     A1   B1   C1  NaN
    # TWO     A2   B2   C2  NaN
    # THREE   A3   B3   C3  NaN
    # TWO    NaN  NaN  NaN   Y2
    # THREE  NaN  NaN  NaN   Y3
    # FOUR   NaN  NaN  NaN   Y4

    添加行,可以在.loc中指定新的行名稱并分配值,或使用append()方法。

    df1.loc['FOUR'] = ['A4', 'B4', 'C4']
    print(df1)
    #         A   B   C
    # ONE    A1  B1  C1
    # TWO    A2  B2  C2
    # THREE  A3  B3  C3
    # FOUR   A4  B4  C4
    s = pd.Series(['A5', 'B5', 'C5'], index=df1.columns, name='FIVE')
    print(s)
    # A    A5
    # B    B5
    # C    C5
    # Name: FIVE, dtype: object
    df_append = df1.append(s)
    print(df_append)
    #         A   B   C
    # ONE    A1  B1  C1
    # TWO    A2  B2  C2
    # THREE  A3  B3  C3
    # FOUR   A4  B4  C4
    # FIVE   A5  B5  C5

    關于“怎么使用Pandas.concat連接DataFrame和Series”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“怎么使用Pandas.concat連接DataFrame和Series”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    西青区| 台中市| 天门市| 柳河县| 昂仁县| 灯塔市| 新乡县| 隆回县| 利川市| 宁乡县| 建德市| 漠河县| 隆林| 两当县| 黄龙县| 申扎县| 武陟县| 武清区| 普兰店市| 西吉县| 饶河县| 岳西县| 罗定市| 内江市| 布尔津县| 武夷山市| 西华县| 连州市| 龙门县| 江永县| 嘉荫县| 大名县| 绥江县| 蒲江县| 红安县| 东海县| 静安区| 阿勒泰市| 佛坪县| 屏南县| 饶阳县|