0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何用pandas實(shí)現(xiàn)execl中的匯總行

科技綠洲 ? 來(lái)源:Python數(shù)據(jù)科學(xué) ? 作者:Python數(shù)據(jù)科學(xué) ? 2023-11-03 10:34 ? 次閱讀

最近小伙伴提出了幾個(gè)問(wèn)題,如何用pandas實(shí)現(xiàn)execl中的匯總行。

關(guān)于這個(gè)問(wèn)題,群里展開(kāi)了激烈的討論,最終經(jīng)過(guò)梳理總結(jié)出了以下兩個(gè)解決方法。一種是當(dāng)做透視時(shí)直接使用參數(shù)margins,另一種是當(dāng)無(wú)透視時(shí)手動(dòng)造出匯總行。

pivot_table

問(wèn)題(群成員"浮生如夢(mèng)"):

我想統(tǒng)計(jì)一月到十二月的所有數(shù)據(jù)應(yīng)該怎么寫(xiě)呢?

圖片

解決方法

  • 用法:sum()pivot_table

如果要對(duì)數(shù)據(jù)按行方向求和,直接使用sum()函數(shù)即可,設(shè)置參數(shù)axis=1(默認(rèn)是axis=0列方向?qū)α袛?shù)據(jù)求和),然后將橫向求和結(jié)果賦給一個(gè)新的字段。此例中為求和,其他統(tǒng)計(jì)方式如mean、max、min等均同理。

# 生成測(cè)試數(shù)據(jù)
df = pd.DataFrame(np.random.randint(10,100,(9,12)),
                  columns=['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC'])
# 橫向求和
df['total'] = df.sum(axis=1)

圖片

此時(shí)已得到行方向的求和,如果我們想繼續(xù)計(jì)算列方向求和并顯示出來(lái)如何操作呢?可以借助pivot_table來(lái)實(shí)現(xiàn),設(shè)置參數(shù)margins=True

pd.pivot_table(df, index=df.index, aggfunc='sum', margins=True)

圖片

groupby+concat

問(wèn)題(群成員"張晶"):

pandas里面如何實(shí)現(xiàn)類(lèi)似excel中的匯總行?

kv = {'Name': {0: 'John', 1: 'Mack', 2: 'Lilei', 3: 'Kevin', 4: 'Alin', 5: 'Bob'},
 'Team': {0: 'A', 1: 'A', 2: 'B', 3: 'B', 4: 'C', 5: 'C'},
 'Jan': {0: 9, 1: 9, 2: 8, 3: 10, 4: 7, 5: 9},
 'Feb': {0: 10, 1: 7, 2: 8, 3: 7, 4: 6, 5: 8},
 'Mar': {0: 8, 1: 9, 2: 7, 3: 8, 4: 8, 5: 7},
 'Apri': {0: 8, 1: 7, 2: 6, 3: 7, 4: 6, 5: 8}}
df = pd.DataFrame(kv)

圖片

解決方法

用法:groupby、concat、sum、transform

該方法通過(guò)幾種用法的組合間接實(shí)現(xiàn)了行和列數(shù)據(jù)匯總。

  • 對(duì)列數(shù)據(jù)的匯總求和比較取巧,使用groupby實(shí)現(xiàn)了對(duì)整列數(shù)據(jù)求和,求和sum函數(shù)中需設(shè)置numeric_only參數(shù),只對(duì)數(shù)值求和。得到列匯總結(jié)果后將其與原數(shù)據(jù)進(jìn)行concat縱向拼接。
  • 對(duì)行數(shù)據(jù)求和可以直接使用sum函數(shù),通過(guò)axis=1指定橫向求和。
# 增加列匯總數(shù)據(jù)
total = df.groupby(lambda _: '總計(jì)').sum(numeric_only=True)
# 與原數(shù)據(jù)縱向拼接
df_total = pd.concat([df,total]).fillna('/')
# 對(duì)原數(shù)據(jù)數(shù)值類(lèi)型橫向求和
df_total['total'] = df_total.sum(numeric_only=True,axis=1)
df_total

圖片

如果想要對(duì)Team進(jìn)行分組求和,可以通過(guò)transform實(shí)現(xiàn)組合求和并添加為一個(gè)新的求和列。

# 分組內(nèi)求和
df_total['team_total'] = df_total.groupby(['Team'])['total'].transform('sum')
df_total

圖片

以上是本次分享內(nèi)容。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    6756

    瀏覽量

    88614
  • 參數(shù)
    +關(guān)注

    關(guān)注

    11

    文章

    1731

    瀏覽量

    31981
  • execl
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    2219
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    請(qǐng)問(wèn)STM32CubeIDE如何查看代碼總行數(shù)?

    近期填寫(xiě)資料,需要寫(xiě)當(dāng)前項(xiàng)目源代碼總行數(shù),使用的STM32CubeIDE開(kāi)發(fā)的,想請(qǐng)教一下,這個(gè)IDE怎么看代碼的總行數(shù)?
    發(fā)表于 03-28 07:07

    labview如何生成execl報(bào)表

    本帖最后由 zhihuizhou 于 2011-11-19 20:24 編輯 請(qǐng)問(wèn)哪位大俠有關(guān)于labview生產(chǎn)execl報(bào)表方面的資料呀?
    發(fā)表于 11-19 16:11

    怎么使用labview保存測(cè)試數(shù)據(jù)到execl?

    大神們:怎么使用labview保存測(cè)試數(shù)據(jù)到execl,每次保存時(shí)都是從execl首行覆蓋式保存,怎么設(shè)置下一行保存?可以設(shè)置保存數(shù)據(jù)字體的顏色嗎?
    發(fā)表于 12-12 15:58

    Pandas的四種繪圖函數(shù)

    數(shù)據(jù)可視化(三):Pandas的繪圖函數(shù)
    發(fā)表于 09-04 09:04

    pandas是什么?

    系列文章目錄提示:寫(xiě)完文章后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔文章目錄系列文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄
    發(fā)表于 07-14 07:48

    pandas是什么

    提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄的大概內(nèi)容:例如:隨著
    發(fā)表于 08-09 07:39

    pandas使用步驟

    提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)學(xué)習(xí)內(nèi)容:學(xué)習(xí)時(shí)間:學(xué)習(xí)產(chǎn)出:前言一、pandas是什么?二
    發(fā)表于 08-10 07:50

    labview 讀取execl

    初學(xué),今天使用Labview 讀取 execl 內(nèi)的文件并顯示數(shù)據(jù),在execl內(nèi),只有一個(gè)sheet,沒(méi)有問(wèn)題,增加一欄后,顯示只讀取了后面一欄,而且execl表格內(nèi)sheet1 也被刪除了,怎么回事?
    發(fā)表于 12-17 18:46

    pandas是什么?

    的幫助文檔文章目錄系列文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù) 2.讀入數(shù)據(jù) 總結(jié)前言 本文章主要目的是對(duì)嵌入式式系統(tǒng)開(kāi)發(fā)是怎么回事,通過(guò)易于理解與實(shí)現(xiàn)的角度對(duì)嵌入式開(kāi)發(fā)進(jìn)行詮釋?zhuān)约坝涗浫粘9ぷ?b class='flag-5'>中的心得體會(huì)。
    發(fā)表于 12-24 08:05

    pandas是什么?

    文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言一、pandas是什么?二、使用步驟1.引入庫(kù)代碼如下(示例):import numpy as npimport
    發(fā)表于 01-11 07:53

    pandas是什么?

    提示:文章寫(xiě)完后,目錄可以自動(dòng)生成,如何生成可參考右邊的幫助文檔文章目錄前言一、pandas是什么?二、使用步驟1.引入庫(kù)2.讀入數(shù)據(jù)總結(jié)前言提示:這里可以添加本文要記錄的大概內(nèi)容:例如:隨著
    發(fā)表于 01-12 07:53

    西門(mén)子S7-200PLC的PC Access軟件的在EXECL表格通信的資料概述

    研討西門(mén)子S7-200小型PLC通過(guò)PC Access軟件與EXECL表格進(jìn)行PPI(或USB-PPI)通信,將PLC的輸入和輸出狀態(tài)以及寄存器的數(shù)值顯示在EXECL表格,并可通過(guò)EXECL
    發(fā)表于 09-25 08:00 ?30次下載
    西門(mén)子S7-200PLC的PC Access軟件的在<b class='flag-5'>EXECL</b>表格通信的資料概述

    Pandas高級(jí)操作匯總

    ? 今天給大家分享一篇Pandas高級(jí)操作匯總~ ? 在數(shù)據(jù)分析和數(shù)據(jù)建模的過(guò)程需要對(duì)數(shù)據(jù)進(jìn)行清洗和整理等工作,有時(shí)需要對(duì)數(shù)據(jù)增刪字段。下面為大家介紹Pandas對(duì)數(shù)據(jù)的復(fù)雜查詢(xún)、數(shù)
    的頭像 發(fā)表于 06-16 10:27 ?394次閱讀

    超強(qiáng)圖解Pandas,建議收藏

    Pandas是數(shù)據(jù)挖掘常見(jiàn)的工具,掌握使用過(guò)程的函數(shù)是非常重要的。本文將借助可視化的過(guò)程,講解Pandas的各種操作。
    的頭像 發(fā)表于 08-29 15:15 ?559次閱讀
    超強(qiáng)圖解<b class='flag-5'>Pandas</b>,建議收藏

    如何實(shí)現(xiàn)Pandas的DataFrame轉(zhuǎn)換交互式表格

    Pivottablejs是一個(gè)通過(guò)IPython widgets集成到Python的JavaScript庫(kù),允許用戶(hù)直接從DataFrame數(shù)據(jù)創(chuàng)建交互式和靈活的匯總報(bào)表??梢赃M(jìn)行高效、清晰的數(shù)據(jù)分析和表示,幫助將數(shù)據(jù)從Pandas
    的頭像 發(fā)表于 11-21 16:15 ?751次閱讀
    如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>Pandas</b>的DataFrame轉(zhuǎn)換交互式表格