<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實例 - 怎樣計算每個學生成績最相似的10個學生

          共 778字,需瀏覽 2分鐘

           ·

          2020-12-20 17:46

          本文來自粉絲的一個需求,怎樣計算每個學生成績相近的10個學生?

          需求

          他的Excel表格是這個樣子:

          包含每個學生的姓名,以及多個科目的成績。

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

          解題思路

          Pandas解題思路:

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

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

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

          本步驟是為了計算每個學生和其他學生的 相似度

          3、使用groupby + top n的方式,計算每個學生成績最相近的10個學生

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

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

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

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

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

          步驟2:實現(xiàn)每個學生的相似度計算

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

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

          步驟3:計算每個學生最相近的10個學生

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

          看下結(jié)果Excel文件

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

          視頻講解


          代碼地址:


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

          打開github后,第46集


          如果本文對你有幫助,感謝點贊和再看^_^

          瀏覽 52
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

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

          手機掃一掃分享

          分享
          舉報
          <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>
                  狠狠se | 先锋AV资源网 | 国产卡一卡二精品电影 | 激情福利导航 | 豆花视频成人网站入口免费观看 |