<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          阿里面試題:Pandas中合并數(shù)據(jù)的5個函數(shù),各有千秋!

          共 4117字,需瀏覽 9分鐘

           ·

          2021-09-15 14:14

          前幾天在一個群里面,看到一位朋友,說到自己的阿里面試,被問了一些關(guān)于pandas的使用。其中一個問題是:pandas中合并數(shù)據(jù)的5中方法
          今天借著這個機會,就為大家盤點一下pandas中合并數(shù)據(jù)的5個函數(shù)。但是對于每個函數(shù),我這里不打算詳細說明,具體用法大家可以參考pandas官當文檔。
          • join主要用于基于索引的橫向合并拼接;
          • merge主要用于基于指定列的橫向合并拼接;
          • concat可用于橫向和縱向合并拼接;
          • append主要用于縱向追加;
          • combine可以通過使用函數(shù),把兩個DataFrame按列進行組合。

          join

          join是基于索引的橫向拼接,如果索引一致,直接橫向拼接。如果索引不一致,則會用Nan值填充。

          索引一致

          x = pd.DataFrame({'A': ['A0''A1''A2'],
                               'B': ['B0''B1''B2']},
                              index=[012])
          y = pd.DataFrame({'C': ['C0''C2''C3'],
                                'D': ['D0''D2''D3']},
                              index=[012])
          x.join(y)
          結(jié)果如下:

          索引不一致

          x = pd.DataFrame({'A': ['A0''A1''A2'],
                               'B': ['B0''B1''B2']},
                              index=[012])
          y = pd.DataFrame({'C': ['C0''C2''C3'],
                                'D': ['D0''D2''D3']},
                              index=[123])
          x.join(y)
          結(jié)果如下:

          merge

          merge是基于指定列的橫向拼接,該函數(shù)類似于關(guān)系型數(shù)據(jù)庫的連接方式,可以根據(jù)一個或多個鍵將不同的DatFrame連接起來。該函數(shù)的典型應(yīng)用場景是,針對同一個主鍵存在兩張不同字段的表,根據(jù)主鍵整合到一張表里面。
          • 可以指定不同的how參數(shù),表示連接方式,有inner內(nèi)連、left左連、right右連、outer全連,默認為inner;
          x = pd.DataFrame({'姓名': ['張三''李四''王五'],
                               '班級': ['一班''二班''三班']})
          y = pd.DataFrame({'專業(yè)': ['統(tǒng)計學''計算機''繪畫'],
                                '班級': ['一班''三班''四班']})

          pd.merge(x,y,how="left")
          結(jié)果如下:

          concat

          concat函數(shù)既可以用于橫向拼接,也可以用于縱向拼接。

          縱向拼接

          x = pd.DataFrame([['Jack','M',40],['Tony','M',20]], columns=['name','gender','age'])
          y = pd.DataFrame([['Mary','F',30],['Bob','M',25]], columns=['name','gender','age'])
          z = pd.concat([x,y],axis=0)
          z
          結(jié)果如下:

          橫向拼接

          x = pd.DataFrame({'姓名': ['張三''李四''王五'],
                               '班級': ['一班''二班''三班']})
          y = pd.DataFrame({'專業(yè)': ['統(tǒng)計學''計算機''繪畫'],
                                '班級': ['一班''三班''四班']})
          z = pd.concat([x,y],axis=1)
          z
          結(jié)果如下:

          append

          append主要用于縱向追加數(shù)據(jù)。
          x = pd.DataFrame([['Jack','M',40],['Tony','M',20]], columns=['name','gender','age'])
          y = pd.DataFrame([['Mary','F',30],['Bob','M',25]], columns=['name','gender','age'])
          x.append(y)
          結(jié)果如下:

          combine

          conbine可以通過使用函數(shù),把兩個DataFrame按列進行組合。
          x = pd.DataFrame({"A":[3,4],"B":[1,4]})
          y = pd.DataFrame({"A":[1,2],"B":[5,6]})
          x.combine(y,lambda a,b:np.where(a>b,a,b))
          結(jié)果如下:

          注:上述函數(shù),用于返回對應(yīng)位置上的最大值。

          我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實戰(zhàn)教程,請持續(xù)關(guān)注Python實用寶典。

          有任何問題,可以在公眾號后臺回復(fù):加群,回答相應(yīng)紅字驗證信息,進入互助群詢問。

          原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作,謝謝!

          點擊下方閱讀原文可獲得更好的閱讀體驗

          Python實用寶典 (pythondict.com)
          不只是一個寶典
          歡迎關(guān)注公眾號:Python實用寶典

          瀏覽 58
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  淫色av| 有在线操逼的网站吗 | 日本一本在线观看视频干女人 | 欧美强开小嫩苞 | 大香蕉在线色 |