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

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)中,設置為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是并集。

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

相關文章

  • 通過Python實現(xiàn)自動填寫調(diào)查問卷

    通過Python實現(xiàn)自動填寫調(diào)查問卷

    這篇文章主要介紹了通過Python實現(xiàn)自動填寫調(diào)查問卷的相關資料,需要的朋友可以參考下
    2017-09-09
  • Python如何用wx模塊創(chuàng)建文本編輯器

    Python如何用wx模塊創(chuàng)建文本編輯器

    在本篇文章里小編給大家整理的是關于Python的wx模塊創(chuàng)建文本編輯器方法,需要的朋友們可以參考下。
    2020-06-06
  • python通過函數(shù)名調(diào)用函數(shù)的幾種方法總結(jié)

    python通過函數(shù)名調(diào)用函數(shù)的幾種方法總結(jié)

    今天帶大家學習的是怎么使用python通過函數(shù)名調(diào)用函數(shù),文中對python通過函數(shù)名調(diào)用函數(shù)的幾種方法有非常詳細的介紹,需要的朋友可以參考下
    2021-06-06
  • python 制作python包,封裝成可用模塊教程

    python 制作python包,封裝成可用模塊教程

    這篇文章主要介紹了python 制作python包,封裝成可用模塊教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python 實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的的棧隊列

    Python 實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的的棧隊列

    這篇文章主要介紹了Python 實現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的的棧,隊列,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05
  • python numpy 反轉(zhuǎn) reverse示例

    python numpy 反轉(zhuǎn) reverse示例

    今天小編就為大家分享一篇python numpy 反轉(zhuǎn) reverse示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • Python keras.metrics源代碼分析

    Python keras.metrics源代碼分析

    最近在用keras寫模型的時候,參考別人代碼時,經(jīng)常能看到各種不同的metrics,因此會產(chǎn)生幾個問題,下面主要介紹了Python keras.metrics源代碼分析
    2022-11-11
  • Python隨機生成迷宮游戲的代碼示例

    Python隨機生成迷宮游戲的代碼示例

    本文主要介紹了Python隨機生成迷宮游戲的代碼示例,Python可以通過生成二維數(shù)組模擬迷宮的結(jié)構(gòu),使用深度優(yōu)先搜索和廣度優(yōu)先搜索等算法找到通路,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • python內(nèi)置模塊collections詳解

    python內(nèi)置模塊collections詳解

    這篇文章主要介紹了python內(nèi)置模塊collections詳解,collections是Python內(nèi)建的一個集合模塊,提供了許多有用的集合類,python提供了很多非常好用的基本類型,比如不可變類型tuple,我們可以輕松地用它來表示一個二元向量,需要的朋友可以參考下
    2023-09-09
  • Python命令行運行文件的實例方法

    Python命令行運行文件的實例方法

    在本篇文章里小編給大家整理的是一篇關于Python命令行運行文件的實例方法,有興趣的朋友們可以學習參考下。
    2021-03-03

最新評論

临城县| 新竹县| 卫辉市| 安康市| 曲阳县| 舞阳县| 平原县| 闽清县| 搜索| 大石桥市| 湟源县| 陆河县| 闽清县| 进贤县| 聂荣县| 娄底市| 得荣县| 彭泽县| 萨嘎县| 谢通门县| 和硕县| 崇州市| 沙坪坝区| 石台县| 辛集市| 嘉义县| 麻江县| 大同市| 禹城市| 新化县| 嘉义县| 南投县| 江油市| 韶山市| 白水县| 临猗县| 宣威市| 南宫市| 镇沅| 佛坪县| 庆阳市|