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

Pandas中g(shù)roupby+agg的兩種寫法區(qū)別小結(jié)

 更新時間:2026年01月07日 10:49:19   作者:司徒軒宇  
Pandas中g(shù)roupby+agg操作存在兩種常見寫法,第一種會將分組字段轉(zhuǎn)為MultiIndex,導(dǎo)致后續(xù)處理困難,第二種通過as_index=False保持分組字段為普通列,更適用于工程場景,兩種寫法核心區(qū)別在于索引類型、列名控制和擴(kuò)展性,下面就來詳細(xì)的介紹一下

在使用 Pandas 做數(shù)據(jù)統(tǒng)計時,groupby + agg 是繞不開的操作。

但很多人(包括我自己)在實際項目中都會遇到一個問題:

為什么明明只是做個統(tǒng)計,結(jié)果 DataFrame 卻變成了 MultiIndex,
后面 merge、導(dǎo) Excel、畫圖全都開始報錯?

追根溯源,問題往往出在:
?? groupby + agg 的寫法選錯了

本文結(jié)合真實工程經(jīng)驗,詳細(xì)講清楚 Pandas 中 agg 的兩種常見寫法,以及為什么在工程場景下強(qiáng)烈推薦其中一種。

一、一個非常真實的使用場景

假設(shè)你在做檢測評測統(tǒng)計,有如下數(shù)據(jù):

classpart1TPFPFNGT_count
cowv015106
cowv014015
dogv023214

目標(biāo)是:

按 class + part1 統(tǒng)計 TP / FP / FN / GT 數(shù)量

二、第一種寫法:很多人最常用,但最容易踩坑

groupby_df = df.groupby(['class', 'part1']).agg(
    {'TP': 'sum', 'FP': 'sum', 'FN': 'sum', 'GT_count': 'sum'}
)

這段代碼有問題嗎?
沒有。

但它返回的結(jié)果結(jié)構(gòu)是:

  • class 和 part1 變成了 MultiIndex
  • 統(tǒng)計結(jié)果才是列

也就是說,你拿到的是一張 多級索引 DataFrame。

MultiIndex 在工程中會帶來什么問題?

以下問題你大概率都會遇到:

  • 導(dǎo)出 Excel 前必須 reset_index()
  • 和其他表 merge 時經(jīng)常報錯
  • 新同事很難快速理解數(shù)據(jù)結(jié)構(gòu)
  • 后面再算指標(biāo)時代碼變得很別扭

?? 分析階段還能接受,工程階段非常痛苦

三、第二種寫法:Pandas 官方推薦(強(qiáng)烈建議)

groupby_df = (
    df.groupby(['class', 'part1'], as_index=False)
    .agg(
        TP=('TP', 'sum'),
        FP=('FP', 'sum'),
        FN=('FN', 'sum'),
        GT=('GT_count', 'sum'),
    )
)

返回結(jié)果是什么樣?

class | part1 | TP | FP | FN | GT

  • 分組字段是普通列
  • 沒有 MultiIndex
  • 看起來就是一張“標(biāo)準(zhǔn)統(tǒng)計表”

四、兩種寫法的核心區(qū)別對比

對比點(diǎn)第一種寫法第二種寫法
分組字段位置Index普通列
索引類型MultiIndex普通 Index
是否需要 reset_index
列名是否可控
擴(kuò)展復(fù)雜統(tǒng)計不優(yōu)雅非常自然
工程實用性較低很高

五、真實項目中的差距會越來越大

當(dāng)統(tǒng)計需求升級,比如你還想算:

  • 平均置信度
  • 唯一 track 數(shù)

第一種寫法會越來越臃腫:

df.groupby(['class', 'part1']).agg({
    'TP': 'sum',
    'FP': 'sum',
    'FN': 'sum',
    'score': 'mean',
    'track_id': 'nunique'
})

而第二種寫法依然清晰:

df.groupby(['class', 'part1'], as_index=False).agg(
    TP=('TP', 'sum'),
    FP=('FP', 'sum'),
    FN=('FN', 'sum'),
    avg_score=('score', 'mean'),
    track_cnt=('track_id', 'nunique'),
)

到此這篇關(guān)于Pandas中g(shù)roupby+agg的兩種寫法區(qū)別小結(jié)的文章就介紹到這了,更多相關(guān)Pandas中g(shù)roupby+agg 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 淺談python socket函數(shù)中,send與sendall的區(qū)別與使用方法

    淺談python socket函數(shù)中,send與sendall的區(qū)別與使用方法

    下面小編就為大家?guī)硪黄獪\談python socket函數(shù)中,send與sendall的區(qū)別與使用方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • python定時檢查啟動某個exe程序適合檢測exe是否掛了

    python定時檢查啟動某個exe程序適合檢測exe是否掛了

    定時檢查啟動某個exe程序這種情況下適合檢測某個exe程序是否掛了,感興趣的朋友可以了解下,希望本文對你有所幫助
    2013-01-01
  • Python實現(xiàn)的本地文件搜索功能示例【測試可用】

    Python實現(xiàn)的本地文件搜索功能示例【測試可用】

    這篇文章主要介紹了Python實現(xiàn)的本地文件搜索功能,涉及Python針對文件與目錄的遍歷、判斷、編碼轉(zhuǎn)換、查找等相關(guān)操作技巧,需要的朋友可以參考下
    2018-05-05
  • 基于Python編寫復(fù)雜密碼圖形化生成工具

    基于Python編寫復(fù)雜密碼圖形化生成工具

    這篇文章主要為大家詳細(xì)介紹了如何基于Python編寫復(fù)雜密碼圖形化生成工具,支持選擇生成10位和12位復(fù)雜密碼,需要的小伙伴可以參考一下
    2024-04-04
  • 使用python實現(xiàn)數(shù)組、鏈表、隊列、棧的方法

    使用python實現(xiàn)數(shù)組、鏈表、隊列、棧的方法

    數(shù)據(jù)結(jié)構(gòu)是指相互之間存在著一種或多種關(guān)系的數(shù)據(jù)元素的集合和該集合中數(shù)據(jù)元素之間的關(guān)系組成。這篇文章主要介紹了使用python實現(xiàn)數(shù)組、鏈表、隊列、棧的相關(guān)知識,需要的朋友可以參考下
    2019-12-12
  • Python中循環(huán)引用(import)失敗的解決方法

    Python中循環(huán)引用(import)失敗的解決方法

    在python中常常會遇到循環(huán)import即circular import的問題,下面這篇文章主要給大家介紹了關(guān)于Python中循環(huán)引用(import)失敗的解決方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-04-04
  • python+tkinter實現(xiàn)一個簡單的秒鐘

    python+tkinter實現(xiàn)一個簡單的秒鐘

    這篇文章主要為大家詳細(xì)介紹了Python如何利用tkinter實現(xiàn)一個簡單的秒鐘,文中的示例代碼講解詳細(xì),具有一定的參考價值,感興趣的小伙伴可以自己動手嘗試一下
    2024-02-02
  • 利用Python代碼實現(xiàn)模擬動態(tài)指針時鐘

    利用Python代碼實現(xiàn)模擬動態(tài)指針時鐘

    這篇文章主要為大家詳細(xì)介紹了如何利用python和C++代碼實現(xiàn)模擬動態(tài)指針時鐘,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-04-04
  • python定向爬取淘寶商品價格

    python定向爬取淘寶商品價格

    這篇文章主要為大家詳細(xì)介紹了python定向爬取淘寶商品價格,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python文件處理與垃圾回收機(jī)制詳情

    Python文件處理與垃圾回收機(jī)制詳情

    這篇文章主要介紹了Python文件處理與垃圾回收機(jī)制詳情,文件是操作系統(tǒng)提供給用戶應(yīng)用程序操作硬盤的一個虛擬的概念接口,需要的朋友可以參考下面文章內(nèi)容
    2022-09-09

最新評論

启东市| 定结县| 拜泉县| 寿阳县| 沂源县| 东光县| 筠连县| 全椒县| 鄯善县| 白沙| 元阳县| 铜陵市| 天长市| 鹤山市| 山西省| 鸡泽县| 镇安县| 独山县| 吐鲁番市| 通辽市| 双城市| 平潭县| 绥棱县| 方山县| 新绛县| 永修县| 府谷县| 贵德县| 巴塘县| 晋州市| 永城市| 福建省| 庐江县| 浙江省| 峨山| 兴和县| 邢台市| 承德县| 佛教| 宁津县| 桃园县|