1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        阿里面試題: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ù),我這里不打算詳細(xì)說明,具體用法大家可以參考pandas官當(dāng)文檔。
        • join主要用于基于索引的橫向合并拼接;
        • merge主要用于基于指定列的橫向合并拼接;
        • concat可用于橫向和縱向合并拼接;
        • append主要用于縱向追加;
        • combine可以通過使用函數(shù),把兩個DataFrame按列進(jìn)行組合。

        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全連,默認(rèn)為inner;
        x = pd.DataFrame({'姓名': ['張三''李四''王五'],
                             '班級': ['一班''二班''三班']})
        y = pd.DataFrame({'專業(yè)': ['統(tǒng)計學(xué)''計算機''繪畫'],
                              '班級': ['一班''三班''四班']})

        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)計學(xué)''計算機''繪畫'],
                              '班級': ['一班''三班''四班']})
        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按列進(jìn)行組合。
        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)紅字驗證信息,進(jìn)入互助群詢問。

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

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

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

        瀏覽 58
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

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

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            啊灬啊灬啊灬快好喷水了视频 | 欧美日韩网站 | 国产美女射精 | 91爱国产| 日本精品无码a 6 2v在线 | 成人 免费 在线视频 黄 | 成人片黄网站色大片免费毛片 | 日韩一二区 | 国产精品久久久久久久三级 | 玖玖资源站在线观看 |