<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ì)算每個(gè)學(xué)生成績(jī)最相似的10個(gè)學(xué)生

          共 778字,需瀏覽 2分鐘

           ·

          2021-02-02 07:24

          本文來自粉絲的一個(gè)需求,怎樣計(jì)算每個(gè)學(xué)生成績(jī)相近的10個(gè)學(xué)生?

          需求

          他的Excel表格是這個(gè)樣子:

          包含每個(gè)學(xué)生的姓名,以及多個(gè)科目的成績(jī)。

          怎么用Pandas實(shí)現(xiàn)呢?

          解題思路

          Pandas解題思路:

          1、使用笛卡爾積的方式,得到 每個(gè)學(xué)生 和 另外所有學(xué)生的 關(guān)聯(lián)行

          每個(gè)學(xué)生都要與其他所有行進(jìn)行交叉關(guān)聯(lián),比如有100個(gè)學(xué)生,那應(yīng)該得到100*100 = 1W行結(jié)果

          2、對(duì)于關(guān)聯(lián)行,使用df.apply(function)的方法,計(jì)算兩兩相似度;

          本步驟是為了計(jì)算每個(gè)學(xué)生和其他學(xué)生的 相似度

          3、使用groupby + top n的方式,計(jì)算每個(gè)學(xué)生成績(jī)最相近的10個(gè)學(xué)生

          步驟0:讀取數(shù)據(jù)

          大家注意,這里的原始數(shù)據(jù)是60行;

          步驟1:實(shí)現(xiàn)笛卡爾積

          即實(shí)現(xiàn)每個(gè)學(xué)生與其他所有學(xué)生的關(guān)聯(lián)。這里的技巧,是先添加一個(gè)一模一樣的數(shù)字列,用此作為關(guān)聯(lián)列進(jìn)行merge即可

          我們看到,這里的結(jié)果行數(shù)是3600,也就實(shí)現(xiàn)了60個(gè)學(xué)生的兩兩交叉。

          步驟2:實(shí)現(xiàn)每個(gè)學(xué)生的相似度計(jì)算

          大家注意這里的用法,df.apply,可以按行回調(diào)一個(gè)函數(shù)進(jìn)行處理

          這里我多加了一步,把每個(gè)學(xué)生自己和自己關(guān)聯(lián)的行去掉。

          步驟3:計(jì)算每個(gè)學(xué)生最相近的10個(gè)學(xué)生

          其實(shí)就是實(shí)現(xiàn)group by + top n的效果

          看下結(jié)果Excel文件

          結(jié)果有3列,每個(gè)學(xué)生,以及他最相似的學(xué)生列表以及相似度值

          視頻講解


          代碼地址:


          https://github.com/peiss/ant-learn-pandas

          打開github后,第46集


          如果本文對(duì)你有幫助,感謝點(diǎn)贊和再看^_^

          瀏覽 26
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  做爱三级网站 | 操B的网站 | 成人淫色电影网 | 美国十次AV | 做爱视频免费在线 |