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

Pandas.concat連接DataFrame,Series的示例代碼

 更新時間:2023年02月22日 09:56:24   作者:餃子大人  
本文主要介紹了Pandas.concat連接DataFrame,Series的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

如何使用pandas.concat()函數(shù)連接pandas.DataFrame和pandas.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
通過參數(shù)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

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

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

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

連接方向的指定(垂直/水平):axis

垂直或水平方向由axis參數(shù)指定。 如果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

參數(shù)join:指定列名(或行名)的并集,或者僅將公共部分保留。

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

也可以使用參數(shù)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

也可以使用參數(shù)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連接內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • python異步編程 使用yield from過程解析

    python異步編程 使用yield from過程解析

    這篇文章主要介紹了python異步編程 使用yield from過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • python pandas修改列屬性的方法詳解

    python pandas修改列屬性的方法詳解

    今天小編就為大家分享一篇python pandas修改列屬性的方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-06-06
  • Django通過json格式收集主機信息

    Django通過json格式收集主機信息

    這篇文章主要介紹了基于Django收集主機信息json格式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-05-05
  • Matplotlib繪圖基礎之子圖詳解

    Matplotlib繪圖基礎之子圖詳解

    這篇文章主要為大家詳細介紹了Matplotlib繪制子圖的常用方式和技巧,文中的示例代碼講解詳細,具有一定的學習價值,感興趣的可以了解一下
    2023-07-07
  • Python for循環(huán)通過序列索引迭代過程解析

    Python for循環(huán)通過序列索引迭代過程解析

    這篇文章主要介紹了Python for循環(huán)通過序列索引迭代過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-02-02
  • 解決pycharm 工具欄Tool中找不到Run manager.py Task的問題

    解決pycharm 工具欄Tool中找不到Run manager.py Task的問題

    今天小編就為大家分享一篇解決pycharm 工具欄Tool中找不到Run manager.py Task的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • 如何用python繪制散點圖

    如何用python繪制散點圖

    這篇文章主要介紹了如何用python繪制散點圖問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • 使用Python編寫一個模仿CPU工作的程序

    使用Python編寫一個模仿CPU工作的程序

    這篇文章主要介紹了使用Python編寫一個模仿CPU工作的程序,包括簡單的內存和輸入輸出的實現(xiàn),本文中的例子需要一定的Python編程基礎,是深入Python的實踐,需要的朋友可以參考下
    2015-04-04
  • python內置函數(shù)compile(),complex()的使用

    python內置函數(shù)compile(),complex()的使用

    這篇文章主要為大家詳細介紹了python內置函數(shù)compile(),complex()的使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • Python dict的常用方法示例代碼

    Python dict的常用方法示例代碼

    這篇文章主要介紹了Python dict的常用方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06

最新評論

锡林郭勒盟| 阜新市| 富源县| 牙克石市| 北碚区| 青龙| 神池县| 湟源县| 太谷县| 霍城县| 江达县| 淄博市| 敖汉旗| 浮梁县| 搜索| 内黄县| 内乡县| 郑州市| 萝北县| 泽州县| 元朗区| 太原市| 杂多县| 汕头市| 阳春市| 临夏市| 济南市| 吉安市| 盘锦市| 独山县| 墨脱县| 务川| 公安县| 库车县| 房山区| 土默特左旗| 凤冈县| 子长县| 朝阳县| 望奎县| 阜新市|