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

DataFrame 數(shù)據(jù)合并實現(xiàn)(merge,join,concat)

 更新時間:2020年06月14日 10:53:44   作者:Python之簡  
這篇文章主要介紹了DataFrame 數(shù)據(jù)合并實現(xiàn)(merge,join,concat),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

merge

merge 函數(shù)通過一個或多個鍵將數(shù)據(jù)集的行連接起來。
場景:針對同一個主鍵存在的兩張包含不同特征的表,通過主鍵的鏈接,將兩張表進行合并。合并之后,兩張表的行數(shù)不增加,列數(shù)是兩張表的列數(shù)之和。

def merge(left, right, how='inner', on=None, left_on=None, right_on=None,
     left_index=False, right_index=False, sort=False,
     suffixes=('_x', '_y'), copy=True, indicator=False,
     validate=None):

參數(shù) 描述
how 數(shù)據(jù)融合的方法,從在不重合的鍵,方式(inner、outer、left、right)
on 用來對齊的列名,一定要保證左表和右表存在相同的列名。
left_on 左表對齊的列,可以是列名。也可以是DataFrame同長度的arrays
right_on 右表對齊的列,可以是列名。
left_index 將左表的index用作連接鍵
right_index 將右表的index用作連接鍵
suffixes 左右對象中存在重名列,結(jié)果區(qū)分的方式,后綴名。
copy 默認:True。將數(shù)據(jù)復制到數(shù)據(jù)結(jié)構(gòu)中,設(shè)置為False提高性能。

特性示例(1)

默認:以重疊的列名當作連接鍵

df1 = pd.DataFrame({'key': ['one', 'two', 'two'],
          'data1': np.arange(3)})
df2 = pd.DataFrame({'key': ['one', 'three', 'three'],
          'data2': np.arange(3)})
df3 = pd.merge(df1, df2)
print(df1)
print(df2)
print(df3)
  key data1
0 one   0
1 two   1
2 two   2
   key data2
0  one   0
1 three   1
2 three   2
  key data1 data2
0 one   0   0

特性示例(2)

默認:做inner連接,取key的交集
連接方式還有l(wèi)eft right outer

df1 = pd.DataFrame({'key': ['one', 'two', 'two'],
          'data1': np.arange(3)})
df2 = pd.DataFrame({'key': ['one', 'three', 'three'],
          'data2': np.arange(3)})
df3 = pd.merge(df1, df2)
df4 = pd.merge(df1, df2, how='left')
print(df3)
print(df4)
  key data1 data2
0 one   0   0
  key data1 data2
0 one   0  0.0
1 two   1  NaN
2 two   2  NaN

特性示例(3)

多鍵連接時將連接鍵做成列表傳入。
on默認是兩者同時存在的列

df1 = pd.DataFrame({'key': ['one', 'two', 'two'],
          'value': ['a', 'b', 'c'],
          'data1': np.arange(3)})
df2 = pd.DataFrame({'key': ['one', 'two', 'three'],
          'value': ['a', 'c', 'c'],
          'data2': np.arange(3)})
df5 = pd.merge(df1, df2)
df6 = pd.merge(df1, df2, on=['key', 'value'], how='outer')
print(df5)
print(df6)
  key value data1 data2
0 one   a   0   0
1 two   c   2   1
   key value data1 data2
0  one   a  0.0  0.0
1  two   b  1.0  NaN
2  two   c  2.0  1.0
3 three   c  NaN  2.0

特性示例(4)

兩個對象的列名不同,需要分別制定。

df7 = pd.merge(df1, df2, left_on=['key1','data1'], right_on=['key2','data2'], how='outer')
print(df7)
 key1 value_x data1  key2 value_y data2
0 one    a  0.0  one    a  0.0
1 two    b  1.0  two    c  1.0
2 two    c  2.0  NaN   NaN  NaN
3 NaN   NaN  NaN three    c  2.0

join

join方法將兩個DataFrame中不同的列索引合并成為一個DataFrame
參數(shù)的意義與merge基本相同,只是join方法默認左外連接how=left

def join(self, other, on=None, how='left', lsuffix='', rsuffix='',
     sort=False):

示例

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A1'],
          'B': ['B0', 'B1', 'B2']},
          index=['K0', 'K1', 'K2'])
df2 = pd.DataFrame({'C': ['C1', 'C2', 'C3'],
          'D': ['D0', 'D1', 'D2']},
          index=['K0', 'K1', 'K3'])
df3 = df1.join(df2)
df4 = df1.join(df2, how='outer')
df5 = df1.join(df2, how='inner')
print(df3)
print(df4)
print(df5)
   A  B  C  D
K0 A0 B0  C1  D0
K1 A1 B1  C2  D1
K2 A1 B2 NaN NaN
   A  B  C  D
K0  A0  B0  C1  D0
K1  A1  B1  C2  D1
K2  A1  B2 NaN NaN
K3 NaN NaN  C3  D2
   A  B  C  D
K0 A0 B0 C1 D0
K1 A1 B1 C2 D1

concat

制定按某個軸進行連接(可橫向可縱向),也可以指定連接方法。

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

屬性 描述
objs 合并的對象集合??梢允荢eries、DataFrame
axis 合并方法。默認0,表示縱向,1橫向
join 默認outer并集,inner交集。只有這兩種
join_axes 按哪些對象的索引保存
ignore_index 默認Fasle忽略。是否忽略原index
keys 為原始DataFrame添加一個鍵,默認無

示例(1)

s1 = pd.Series(['a', 'b'])
s2 = pd.Series(['c', 'd'])
s3 = pd.concat([s1, s2])
s4 = pd.concat([s1, s2], ignore_index=True)
print(s3)
print(s4)
0  a
1  b
dtype: object
0  c
1  d
dtype: object
0  a
1  b
0  c
1  d
dtype: object
0  a
1  b
2  c
3  d
dtype: object

示例(2)

df1 = pd.DataFrame([['a', 1], ['b', 2]], columns=['A', 0])
df2 = pd.DataFrame([['a', 1], ['b', 2]], columns=['B', 0])
df3 = pd.concat([df1, df2], join='inner')
print(df3)
  0
0 1
1 2
0 1
1 2

示例(3)

df1 = pd.DataFrame([['a', 1], ['b', 2]], columns=['A', 0])
df2 = pd.DataFrame([['a', 1], ['b', 2]], columns=['B', 0])
df3 = pd.concat([df1, df2], axis=1, join_axes=[df1.index])
print(df3)
  A 0 B 0
0 a 1 a 1
1 b 2 b 2

append

橫向和縱向同時擴充,不考慮columns和index

df1 = pd.DataFrame({'A': ['A0', 'A1', 'A1'],
          'B': ['B0', 'B1', 'B2']},
          index=['K0', 'K1', 'K2'])
s2 = pd.Series(['X0','X1'], index=['A','B'])
result = df1.append(s2, ignore_index=True)
print(result)
   A  B
K0 A0 B0
K1 A1 B1
K2 A1 B2
  A  B
0 A0 B0
1 A1 B1
2 A1 B2
3 X0 X1

匯總

  • concat:可以沿一條軸將多個對象連接到一起
  • merge:可以根據(jù)一個或多個鍵將不同的DataFrame中的行連接起來。
  • join:inner是交集,outer是并集。

到此這篇關(guān)于DataFrame 數(shù)據(jù)合并實現(xiàn)(merge,join,concat)的文章就介紹到這了,更多相關(guān)DataFrame 數(shù)據(jù)合并內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Python運行提示缺少模塊問題解決方案

    Python運行提示缺少模塊問題解決方案

    這篇文章主要介紹了Python運行提示缺少模塊問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 使用Python可設(shè)置抽獎?wù)邫?quán)重的抽獎腳本代碼

    使用Python可設(shè)置抽獎?wù)邫?quán)重的抽獎腳本代碼

    這篇文章主要介紹了Python可設(shè)置抽獎?wù)邫?quán)重的抽獎腳本,抽獎系統(tǒng)包含可給不同抽獎?wù)咴O(shè)置不同的權(quán)重,先從價值高的獎品開始抽,已經(jīng)中獎的人,不再參與后續(xù)的抽獎,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • python識別驗證碼圖片實例詳解

    python識別驗證碼圖片實例詳解

    這篇文章主要介紹了python識別驗證碼圖片實例詳解,需要的朋友可以參考下
    2020-02-02
  • 完美解決Django2.0中models下的ForeignKey()問題

    完美解決Django2.0中models下的ForeignKey()問題

    這篇文章主要介紹了完美解決Django2.0中models下的ForeignKey()問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • 淺析Python中yield關(guān)鍵詞的作用與用法

    淺析Python中yield關(guān)鍵詞的作用與用法

    Python中關(guān)鍵字yield的作用是什么?用來干什么的?這篇文章就給大家詳細介紹了Python中yield關(guān)鍵詞的作用與用法,文中通過示例代碼介紹的很詳細,對大家學習python具有一定的參考借鑒價值,有需要的朋友們下面來一起學習學習吧。
    2016-11-11
  • Python?變量教程字節(jié)對象與字符串

    Python?變量教程字節(jié)對象與字符串

    這篇文章主要介紹了Python變量教程字節(jié)對象與字符串,字節(jié)對象是字節(jié)序列,而字符串是字符序列,字節(jié)對象在內(nèi)部是機器可讀的形式,字符串只是人類可讀的形式
    2022-08-08
  • CentOS中升級Python版本的方法詳解

    CentOS中升級Python版本的方法詳解

    本文給大家分享的是再centos系統(tǒng)中將Python版本從2.6升級到2.7的方法和升級過程中遇到的問題的處理,非常詳細,有需要的小伙伴可以參考下
    2017-07-07
  • 基于python中theano庫的線性回歸

    基于python中theano庫的線性回歸

    這篇文章主要為大家詳細介紹了基于python中theano庫的線性回歸,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • python中列表和元組的區(qū)別

    python中列表和元組的區(qū)別

    給大家詳細講解了python中列表和元組的區(qū)別,需要的朋友參考一下。
    2017-12-12
  • python中異常捕獲方法詳解

    python中異常捕獲方法詳解

    異常信息的獲取對于程序的調(diào)試非常重要,可以有助于快速定位有錯誤程序語句的位置。下面介紹幾種python中獲取異常信息的方法,希望小伙伴們能夠喜歡
    2017-03-03

最新評論