欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決Django中修改js css文件但瀏覽器無法及時與之改變的問題

    解決Django中修改js css文件但瀏覽器無法及時與之改變的問題

    今天小編就為大家分享一篇解決Django中修改js css文件但瀏覽器無法及時與之改變的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • python讀文件的步驟

    python讀文件的步驟

    在本篇文章里小編給大家分享的是關于python讀文件的步驟以及相關知識點,需要的朋友們參考下。
    2019-10-10
  • python神經(jīng)網(wǎng)絡Keras常用學習率衰減匯總

    python神經(jīng)網(wǎng)絡Keras常用學習率衰減匯總

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡Keras常用學習率衰減匯總,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • python 字典修改鍵(key)的幾種方法

    python 字典修改鍵(key)的幾種方法

    這篇文章主要介紹了python 字典修改鍵(key)的幾種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • python版百度語音識別功能

    python版百度語音識別功能

    這篇文章為大家詳細主要介紹了python版百度語音識別功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • python實現(xiàn)梯度法 python最速下降法

    python實現(xiàn)梯度法 python最速下降法

    這篇文章主要為大家詳細介紹了python梯度法,最速下降法的原理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Python格式化字符串f-string概覽(小結)

    Python格式化字符串f-string概覽(小結)

    這篇文章主要介紹了Python格式化字符串f-string概覽(小結),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • python 實現(xiàn)aes256加密

    python 實現(xiàn)aes256加密

    這篇文章主要介紹了python 如何實現(xiàn)aes256加密,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-11-11
  • python缺失值填充方法示例代碼

    python缺失值填充方法示例代碼

    常見的數(shù)據(jù)缺失填充方式分為很多種,比如刪除法、均值法、回歸法、KNN、MICE、EM等,下面這篇文章主要給大家介紹了關于python缺失值填充方法的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-12-12
  • 微信跳一跳python自動代碼解讀1.0

    微信跳一跳python自動代碼解讀1.0

    這篇文章主要為大家詳細介紹了微信跳一跳python自動代碼解讀1.0,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-01-01

最新評論