一区二区三区中文国产亚洲_另类视频区第一页_日韩精品免费视频_女人免费视频_国产综合精品久久亚洲

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 小紅書達人帶你學(xué)習(xí)DataFrame的排序

小紅書達人帶你學(xué)習(xí)DataFrame的排序

來源:千鋒教育
發(fā)布人:syq
時間: 2022-08-12 13:48:00 1660283280

  現(xiàn)在直播帶貨太火了,宋宋最近也在小紅書上敗家了好幾單,身為程序員的宋宋有點不甘心。拿到了一份小紅書直播帶貨榜數(shù)據(jù)分析下,看一看小紅書的賣貨實力和用戶分析?本案例主要針對DataFrame的排序知識點的講解。

DataFrame的排序

  ### 數(shù)據(jù)排序

  在數(shù)據(jù)分析的使用過程中,數(shù)據(jù)排序是必不可少的。當(dāng)然DataFrame就給我提供了一個非常方便的對數(shù)據(jù)排序的方法,那就是:

  sort_index和sort_values方法。在我們講解DataFrame的排序之前,回顧下Series的排序。

  Series排序有兩種:一個是sort_index,顧名思義根據(jù)Series中的索引對這些值進行排序。另一個是sort_values,根據(jù)Series中的值來排序。這兩個方法都會返回一個新的Series。使用Series的排序可以對DataFrame中的某一列進行排序。比如:按照年齡排序

  ```

  df['age'].sort_values() # 獲取age列,并進行排序

  ```

  #### 索引排序

  對于DataFrame來說也是一樣,同樣有根據(jù)值排序以及根據(jù)索引排序這兩個功能。但是由于DataFrame是一個二維的數(shù)據(jù),所以在使用上會有些不同。最主要的差別是在于Series只有一列,我們明確的知道排序的對象,但是DataFrame不是,它當(dāng)中的索引就分為兩種,分別是行索引以及列索引。所以我們在排序的時候**需要指定我們想要排序的軸**,也就是axis。

  ```

  df.sort_index(axis=0,ascending=False)

  # 其中ascending是用來指定排序的升降序的,默認是升序,如果是降序排列可以使用ascending=False

  ```  

屏幕快照 2021-07-22 下午5.55.43

  #### 值排序

  DataFrame的值排序有所不同,我們不能對行進行排序,**只能針對列**。我們通過by參數(shù)傳入我們希望排序參照的列,可以是一列也可以是多列。比如:需要按照用戶下單的金額排序,升序排列

  ```

  df.sort_values(by='revenue') # 通過by參數(shù)指定排序的列名

  ```

  結(jié)果:  

屏幕快照 2021-07-22 下午6.00.40

  或者是按照用戶下單金額和消費的總金額排序,

  ```

  # 如果排序的列名是多個,則可以使用列表將多個列名放于列表中

  df.sort_values(by=['revenue','accumulation'])

  ```

  結(jié)果:  

屏幕快照 2021-07-22 下午6.04.23

  以上排序是默認的升序,如果需要獲取用戶下單金額最高的則需要,則需要降序排列查看。

  ```

  df.sort_values(by=['revenue','accumulation'],asccending=False)

  ``` 

屏幕快照 2021-07-22 下午6.06.33

  當(dāng)然還可以在sort_values方法中指定,inplace=True 保留排序結(jié)果在原數(shù)據(jù)中,默認是False。也可以指定按照哪個軸排序使用axis,

  也可以指定排序的方式是:快速排序、合并排序、堆排序使用kind參數(shù),默認是快速排序。(以下分別是合并排序和快排)  

屏幕快照 2021-07-22 下午6.24.57

  ### 數(shù)據(jù)匯總

  DataFrame中的匯總運算也就是**聚合運算**,比如我們最常見的sum方法,對一批數(shù)據(jù)進行聚合求和。還有mean方法,對數(shù)據(jù)進行均值運算等等。

  > max([axis=1|0])

  >

  > min([axis=1|0])

  >

  > sum([axis=1|0])

  >

  > mean([axis=1|0])

  >

  > count([axis=1|0])

  >

  > ....

  我們可以使用sum來對DataFrame的行或者列進行求和,如果不傳任何參數(shù),默認是對每一行進行求和,如果需要按照列求和則設(shè)置axis=1。比如求過往第三方購買的數(shù)量的總和

  ```python

  df['3rd'].sum()

  ```

  結(jié)果:

  > ```

  > 67329

  > ```

  當(dāng)然我們也可以獲取用戶的購買金額revenue的均值

  ```

  df['revenue'].mean() # 默認axis=0

  ```

  結(jié)果:

  > ```

  > 398.2981660045499

  > ```

  獲取用戶注冊6個月內(nèi)的個數(shù)

  ```

  df.loc[df['lifecycle']=='A','lifecycle'].count()

  ```

  結(jié)果:

  > ```

  > 3541

  > ```

  獲取消費總額最大的金額

  ```

  df['accumulation'].max()

  ```

  結(jié)果:

  > ```

  > 11597.9

  > ```

  由于DataFrame當(dāng)中常常會有為NA的元素,所以我們可以通過skipna這個參數(shù)排除掉缺失值之后再計算平均值。另外還有一個很好用的方法是descirbe,可以返回DataFrame當(dāng)中的**整體信息**。比如每一列的均值、樣本數(shù)量、標(biāo)準(zhǔn)差、最小值、最大值等等。是一個常用的統(tǒng)計方法,可以用來了解DataFrame當(dāng)中數(shù)據(jù)的分布情況。

  ```

  df.describe()

  ```

  結(jié)果:  

屏幕快照 2021-07-22 下午11.44.32

  其中std是求標(biāo)準(zhǔn)差,50%求中位數(shù),var()求方差等...

  當(dāng)然我們也可以同時獲取用戶的購買金額revenue的均值和消費總額最大的金額,此時我們需要使用agg方法完成。

  ```

  df.agg({'revenue':np.mean,'accumulation':np.max}) # 參數(shù)是一個字典,key為列名,value為要進行的聚合運算

  ```

  結(jié)果:  

屏幕快照 2021-07-22 下午11.42.08

  當(dāng)然更多情況下,agg方法往往是結(jié)合分組groupby使用。也不是絕對的,根據(jù)實際的情況吧!

  更多關(guān)于Python 培訓(xùn)的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓(xùn)服務(wù)經(jīng)驗,采用全程面授高品質(zhì)、高體驗培養(yǎng)模式,擁有國內(nèi)一體化教學(xué)管理及學(xué)員服務(wù),助力更多學(xué)員實現(xiàn)高薪夢想。

  注:本文部分文字和圖片來源于網(wǎng)絡(luò),如有侵權(quán),請聯(lián)系刪除。版權(quán)歸原作者所有!

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
反欺詐中所用到的機器學(xué)習(xí)模型有哪些?

一、邏輯回歸模型邏輯回歸是一種常用的分類模型,特別適合處理二分類問題。在反欺詐中,邏輯回歸可以用來預(yù)測一筆交易是否是欺詐。二、決策樹模...詳情>>

2023-10-14 14:09:29
軟件開發(fā)管理流程中會出現(xiàn)哪些問題?

一、需求不清需求不明確是導(dǎo)致項目失敗的主要原因之一。如果需求沒有清晰定義,開發(fā)人員可能會開發(fā)出不符合用戶期望的產(chǎn)品。二、通信不足溝通問...詳情>>

2023-10-14 13:43:21
軟件定制開發(fā)中的敏捷開發(fā)是什么?

軟件定制開發(fā)中的敏捷開發(fā)是什么軟件定制開發(fā)中的敏捷開發(fā),從宏觀上看,是一個高度關(guān)注人員交互,持續(xù)開發(fā)與交付,接受需求變更并適應(yīng)環(huán)境變化...詳情>>

2023-10-14 13:24:57
什么是PlatformIo?

PlatformIO是什么PlatformIO是一個全面的物聯(lián)網(wǎng)開發(fā)平臺,它為眾多硬件平臺和開發(fā)環(huán)境提供了統(tǒng)一的工作流程,有效簡化了開發(fā)過程,并能兼容各種...詳情>>

2023-10-14 12:55:06
云快照與自動備份有什么區(qū)別?

1、定義和目標(biāo)不同云快照的主要目標(biāo)是提供一種快速恢復(fù)數(shù)據(jù)的方法,它只記錄在快照時間點后的數(shù)據(jù)變化,而不是所有的數(shù)據(jù)。自動備份的主要目標(biāo)...詳情>>

2023-10-14 12:48:59