最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中的數(shù)據(jù)分組統(tǒng)計、分組運(yùn)算及透視方式

 更新時間:2024年07月19日 10:53:55   作者:云曉-  
這篇文章主要介紹了Python中的數(shù)據(jù)分組統(tǒng)計、分組運(yùn)算及透視方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

1 數(shù)據(jù)分組統(tǒng)計 groupby

  • 分割 split: 按照鍵值(key)或者分組變量將數(shù)據(jù)分組
  • 應(yīng)用 apply: 對每個組應(yīng)用函數(shù), 通常是累計,轉(zhuǎn)換或過濾函數(shù)
  • 組合 combine: 將每一組的結(jié)果合并成一個輸出組

常用功能

1. len(gp1) #組數(shù)
2. gp1.size() #每組的記錄個數(shù)
3. df3.groupby(["小組","評級"])  #得到的結(jié)果是一個groupby對象
4. gp1.mean()  #每組組內(nèi)的平均值,還有sum、max、min、count
5. apply #自定義統(tǒng)計函數(shù)(自己定義一個函數(shù),作為參數(shù),會自動將函數(shù)應(yīng)用到每一組數(shù)據(jù)當(dāng)中去)

1.1 按照單列進(jìn)行分組統(tǒng)計df.groupby(‘列名’).count()

# 創(chuàng)建示例DataFrame
data = {'班級': ['一班', '一班','一班','二班', '二班','二班','三班','三班','三班'],
        '科目': ['物理', '化學(xué)', '生物','物理', '化學(xué)', '生物','物理', '化學(xué)', '生物'],
        '數(shù)量': [17, 29, 18,37,48,32,17, 29, 18],
        '分?jǐn)?shù)': [87, 89, 88,77,98,82,97, 89, 78]}
df = pd.DataFrame(data)

# 創(chuàng)建示例DataFrame
data = {'班級': ['一班', '一班','一班','二班', '二班','二班','三班','三班','三班'],
        '科目': ['物理','生物','生物','物理', '物理', '生物','化學(xué)', '化學(xué)', '生物'],
        '姓名': ['張三', '章中', '賀天','紫瞳','西德','魏斯','明峰', '希方', '塞法'],
        '分?jǐn)?shù)': [87, 89, 88,77,98,82,97, 89, 78]}
df = pd.DataFrame(data)
#實(shí)現(xiàn)組內(nèi)排序,排序的時候,科目作為第一排序依據(jù),用來排序的數(shù)值字段(分?jǐn)?shù))作為第二排序依據(jù)
df.sort_values(['科目','分?jǐn)?shù)'],ascending=[False,True]).groupby('科目').head(3)

1.2 按照多列進(jìn)行分組統(tǒng)計 df.groupby([‘列名1’,‘列名2’]).count()

# 創(chuàng)建示例DataFrame
data = {'班級': ['一班', '一班','一班','二班', '二班','二班','三班','三班','三班'],
        '科目': ['物理','生物','生物','物理', '物理', '生物','化學(xué)', '化學(xué)', '生物'],
        '姓名': ['張三', '章中', '賀天','紫瞳','西德','魏斯','明峰', '希方', '塞法'],
        '分?jǐn)?shù)': [87, 89, 88,77,98,82,97, 89, 78]}
df = pd.DataFrame(data)
#按照科目、班級進(jìn)行分組求平均
df[['科目','班級','分?jǐn)?shù)']].groupby(['科目','班級']).mean()

1.3 分組填充缺失值 df.groupby(‘需填充列名’).apply(lambda x:x.fillna(x.mean()))

# 創(chuàng)建示例DataFrame
data = {'年級': ['1', '1','1','2', '2','3','3','3','3'],
        '姓名': ['張三', '章中', '賀天','紫瞳','西德','魏斯','明峰', '希方', '塞法'],
        '年齡': [17, 19, np.NaN,18,np.NaN,15,18, 18,np.NaN ]}
df = pd.DataFrame(data)
df

#按照年級分組填充缺失的年齡
df.groupby('年級').apply(lambda x:x.fillna(x.mean()))

新增加一列 年齡ew 將填充后的年齡補(bǔ)充上去

2 分組運(yùn)算 agg

數(shù)據(jù)聚合(agg):一般指的是能夠從數(shù)組產(chǎn)生的標(biāo)量值的數(shù)據(jù)轉(zhuǎn)換過程,常見的聚合運(yùn)算都有相關(guān)的統(tǒng)計函數(shù)快速實(shí)現(xiàn),也可以自定義聚合運(yùn)算。

2.1 傳入標(biāo)準(zhǔn)函數(shù) df.groupby(‘班級’).agg(np.sum)

data = {'班級': ['一班', '一班','一班','二班', '二班','二班','三班','三班','三班'],
        '科目': ['物理', '化學(xué)', '生物','物理', '化學(xué)', '生物','物理', '化學(xué)', '生物'],
        '數(shù)量': [17, 29, 18,37,48,32,17, 29, 18],
        '分?jǐn)?shù)': [87, 89, 88,77,98,82,97, 89, 78]}
df = pd.DataFrame(data)
#數(shù)值列按照分組標(biāo)準(zhǔn)快速聚合
df.groupby('班級').agg(np.sum) 

2.2 不同的列不同的聚合函數(shù) df.groupby(‘班級’).agg({‘數(shù)量’:np.sum,‘分?jǐn)?shù)’:np.mean})

#不同的列傳入不同的函數(shù)
mappping = {'數(shù)量':np.sum,'分?jǐn)?shù)':np.mean}
df.groupby('班級').agg(mappping)

2.3 自定義函數(shù)

#求針對各科目最高分?jǐn)?shù)與最低分?jǐn)?shù)之間的差值
def cha(x):
    return x.max() - x.min()
df[['科目','分?jǐn)?shù)']].groupby('科目').agg([cha])

2.4 調(diào)用多個聚合函數(shù)

df[['班級','分?jǐn)?shù)']].groupby('班級').agg([np.max,np.min,np.mean])

3 數(shù)據(jù)透視表

3.1 透視表 pivot_table

透視表(pivot table): 透視表指根據(jù)一個或多個鍵值對數(shù)據(jù)進(jìn)行聚合,根據(jù)行或列的分組鍵將數(shù)據(jù)劃分到各個區(qū)域中

#pivot_table 其實(shí)就是將groupby封裝起來了
df[['班級','分?jǐn)?shù)']].pivot_table(index = ['班級']) #先按照班級分組,再求mean

data = {'班級': ['一班', '一班','一班','二班', '二班','二班','三班','三班','三班'],
        '科目': ['物理', '化學(xué)', '生物','物理', '化學(xué)', '生物','物理', '化學(xué)', '生物'],
        '數(shù)量': [17, 29, 18,37,48,32,17, 29, 18],
        '分?jǐn)?shù)': [87, 89, 88,77,98,82,97, 89, 78]}
df = pd.DataFrame(data)
df.pivot_table(index = ['班級','科目']) #先按照班級然后按照科目分許,默認(rèn)求均值

df.pivot_table(index = ['班級'],aggfunc = np.sum)#求和

pd.pivot_table(df3,values="總分",index="評級",columns=["班級","小組"])

3.2 交叉表 crosstab

交叉表(crosstab): 交叉表用于統(tǒng)計分組頻率的特殊透視表

#groupby實(shí)現(xiàn)pd.crosstab(df['班級'],df['科目']) 
df[['班級','科目','姓名']].groupby(['班級','科目']).count().unstack().fillna(0)

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • PyTorch實(shí)現(xiàn)線性回歸詳細(xì)過程

    PyTorch實(shí)現(xiàn)線性回歸詳細(xì)過程

    本文介紹PyTorch實(shí)現(xiàn)線性回歸,線性關(guān)系是一種非常簡單的變量之間的關(guān)系,因變量和自變量在線性關(guān)系的情況下,可以使用線性回歸算法對一個或多個因變量和自變量間的線性關(guān)系進(jìn)行建模,該模型的系數(shù)可以用最小二乘法進(jìn)行求解,需要的朋友可以參考一下
    2022-03-03
  • python?subprocess執(zhí)行外部命令常用方法詳細(xì)舉例

    python?subprocess執(zhí)行外部命令常用方法詳細(xì)舉例

    這篇文章主要給大家介紹了關(guān)于python?subprocess執(zhí)行外部命令常用方法的相關(guān)資料,Python的subprocess模塊提供了一種在Python中調(diào)用外部命令的方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Python實(shí)現(xiàn)的線性回歸算法示例【附csv文件下載】

    Python實(shí)現(xiàn)的線性回歸算法示例【附csv文件下載】

    這篇文章主要介紹了Python實(shí)現(xiàn)的線性回歸算法,涉及Python使用最小二乘法、梯度下降算法實(shí)現(xiàn)線性回歸相關(guān)算法操作與使用技巧,需要的朋友可以參考下
    2018-12-12
  • Pyspider進(jìn)行API接口抓取和數(shù)據(jù)采集的實(shí)現(xiàn)

    Pyspider進(jìn)行API接口抓取和數(shù)據(jù)采集的實(shí)現(xiàn)

    Pyspider是一個基于Python的強(qiáng)大的網(wǎng)絡(luò)爬蟲框架,它提供了豐富的功能和靈活的擴(kuò)展性,使我們可以輕松地進(jìn)行數(shù)據(jù)的抓取和處理,本文主要介紹了Pyspider進(jìn)行API接口抓取和數(shù)據(jù)采集的實(shí)現(xiàn),感興趣的可以了解一下
    2023-09-09
  • Python中的裝飾器用法詳解

    Python中的裝飾器用法詳解

    這篇文章主要介紹了Python中的裝飾器用法,以實(shí)例形式詳細(xì)的分析了Python中的裝飾器的使用技巧及相關(guān)注意事項(xiàng),具有一定參考借鑒價值,需要的朋友可以參考下
    2015-01-01
  • appium+python adb常用命令分享

    appium+python adb常用命令分享

    這篇文章主要介紹了appium+python adb常用命令分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-03-03
  • Selenium控制瀏覽器常見操作示例

    Selenium控制瀏覽器常見操作示例

    這篇文章主要介紹了Selenium控制瀏覽器常見操作,結(jié)合實(shí)例形式分析了Selenium針對瀏覽器的窗口大小控制、前進(jìn)、后退、刷新、截屏等相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • Python機(jī)器學(xué)習(xí)NLP自然語言處理基本操作電影影評分析

    Python機(jī)器學(xué)習(xí)NLP自然語言處理基本操作電影影評分析

    本文是Python機(jī)器學(xué)習(xí)NLP自然語言處理系列文章,帶大家開啟一段學(xué)習(xí)自然語言處理 (NLP) 的旅程。本篇文章主要學(xué)習(xí)NLP自然語言處理基本操電影影評分析
    2021-09-09
  • Python?如何將?matplotlib?圖表集成進(jìn)到PDF?中

    Python?如何將?matplotlib?圖表集成進(jìn)到PDF?中

    這篇文章主要介紹了Python?如何將?matplotlib?圖表集成進(jìn)到PDF?中,文章介紹內(nèi)容詳細(xì),具有一定的參考價值,需要的小伙伴可以參考一下,希望對你的學(xué)習(xí)有所幫助
    2022-03-03
  • python實(shí)現(xiàn)保存網(wǎng)頁到本地示例

    python實(shí)現(xiàn)保存網(wǎng)頁到本地示例

    這篇文章主要介紹了python實(shí)現(xiàn)保存網(wǎng)頁到本地示例,需要的朋友可以參考下
    2014-03-03

最新評論

巫溪县| 文化| 德州市| 宣汉县| 通化县| 肥东县| 漳州市| 裕民县| 赞皇县| 临沧市| 合山市| 安福县| 同德县| 崇州市| 全南县| 延寿县| 德格县| 历史| 永兴县| 乌鲁木齐县| 阳江市| 满洲里市| 扎囊县| 涡阳县| 利川市| 雅安市| 双流县| 甘谷县| 永登县| 金坛市| 昆明市| 永善县| 达日县| 衡阳县| 武平县| 海安县| 巴彦淖尔市| 琼结县| 桦甸市| 尉犁县| 遂昌县|