日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python做excel数据分析统计服_Python也能做到Excel那样,条件统计轻松解决工作需求...

發(fā)布時(shí)間:2023/12/15 python 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python做excel数据分析统计服_Python也能做到Excel那样,条件统计轻松解决工作需求... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

此系列文章收錄在公眾號(hào)中:數(shù)據(jù)大宇宙 > 數(shù)據(jù)處理 >E-pd

轉(zhuǎn)發(fā)本文并私信我"python",即可獲得Python資料以及更多系列文章(持續(xù)更新的)

經(jīng)常聽別人說 Python 在數(shù)據(jù)領(lǐng)域有多厲害,結(jié)果學(xué)了很長(zhǎng)時(shí)間,連數(shù)據(jù)處理都麻煩得要死。后來才發(fā)現(xiàn),原來不是 Python 數(shù)據(jù)處理厲害,而是他有數(shù)據(jù)分析神器—— pandas

前言

Excel 中除了 Vlookup 函數(shù),一系列條件統(tǒng)計(jì)函數(shù)(sumif、countif、maxif)就用得最多,畢竟在 Excel 中進(jìn)行數(shù)據(jù)統(tǒng)計(jì)是常見需求。

今天我們來看看在 pandas 中如何做到條件統(tǒng)計(jì)。

本文使用泰坦尼克號(hào)沉船事件的乘客名單作為例子:

pclass:船艙等級(jí)survived:是否生還fare:票價(jià)sex:性別home.dest:住址需求1:性別統(tǒng)計(jì)

"男女分別有多少人?"

這需要我們?cè)贓xcel中有很多方式完成,比如透視表或函數(shù)公式,下面簡(jiǎn)單列出函數(shù)公式的做法:

簡(jiǎn)單使用 countifs 即可這里不再單獨(dú)使用 countif 了,管他是否只有一個(gè)條件,統(tǒng)一用 xxxifs 類函數(shù)即可

在pandas,不會(huì)有啥條件統(tǒng)計(jì)函數(shù)的,因?yàn)檫@就是先篩選,再統(tǒng)計(jì):

行2:得到 性別 列是女性的 bool 列行3:df[cond] 就是女性的記錄,簡(jiǎn)單通過 len 方法,即可得到記錄數(shù)(人數(shù))不過你可能會(huì)覺得這很麻煩,因?yàn)槿绻€要男性的人數(shù),也需要執(zhí)行一次差不多的代碼。

實(shí)際上我們可以直接對(duì)性別列分組統(tǒng)計(jì)即可:

不多說了,代碼語(yǔ)義簡(jiǎn)直與中文一樣這里唯一不好的地方是,需要通過 size 方法獲得每個(gè)分組的記錄數(shù)需求2:不同的統(tǒng)計(jì)方法

剛剛是求人數(shù),現(xiàn)在希望求出女性的平均票價(jià)。

以下是Excel的公式做法:

那么 pandas 的做法呢?

想必聰明的你一定大概知道怎么做,pandas中求平均的是方法mean:

行3:同樣語(yǔ)義非常清晰。.fare.mean() 恰好反映"票價(jià)的平均"同樣,簡(jiǎn)單分組即可一次獲得所有分組的統(tǒng)計(jì)信息:

按 sex 分組,求 票價(jià) 的 平均需求3:非常規(guī)匹配

上面的條件都是完全符合,有時(shí)候我們需要統(tǒng)計(jì)有包含關(guān)系的條件。

"住址是New York 的人數(shù)"

Excel的xxifs類函數(shù)公式都能支持通配符:

前后用 * 包圍內(nèi)容,表示包含此內(nèi)容即符合條件在pandas中,由于篩選與統(tǒng)計(jì)是獨(dú)立分開的,因此只需要知道怎么篩選,那么此需求即可迎刃而解:

行2:由于 住址 列是字符串類列,使用 .str 可訪問字符串類型列的各種方法contains 判斷列中是否包含指定內(nèi)容。如果本身內(nèi)容是 nan(不存在值) ,那么直接賦值為 False如果我們只需要 住址 結(jié)尾是 NY 的人數(shù)?

Excel中由于用通配符,因此表達(dá)更直接:

注意,沒有修改公式,只是輸入內(nèi)容變成 *NY ,表示 NY 前面可以是任意內(nèi)容在pandas這麻煩多了,這次不能使用contains方法:

行2:使用 endswith 方法即可完成怎么與 Excel 的統(tǒng)計(jì)結(jié)果不一樣!!

你會(huì)發(fā)現(xiàn),Excel 的統(tǒng)計(jì)結(jié)果包含小寫字母的 ny 結(jié)尾!

一次解決所有問題

以上 pandas 的做法主要有以下問題:

不能用通配符表達(dá)不同的文本規(guī)則,只能用不同的方法,我記不住這么多方法呀不能忽略大小寫(實(shí)際上面的需求,pandas 的結(jié)果更合理)其實(shí).str.contains方法本身就是使用正則表達(dá)式,我們可以直接用contains解決所有文本規(guī)則相關(guān)問題:

行2: NY$ ,表示 NY 在結(jié)尾處參數(shù) case = False ,不區(qū)分大小寫pandas 用于文本匹配的還有 match 方法,此系列文章不再深入講解了。更多高級(jí)應(yīng)用方法,請(qǐng)關(guān)注 pandas 專欄 [帶你玩轉(zhuǎn)Python數(shù)據(jù)處理—pandas]

總結(jié)

本文重點(diǎn):

構(gòu)造 bool 列,是核心知識(shí)點(diǎn)Series.str.contains 用于文本規(guī)則條件匹配

如果希望從零開始學(xué)習(xí) pandas ,那么可以看看我的 pandas 專欄。

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的python做excel数据分析统计服_Python也能做到Excel那样,条件统计轻松解决工作需求...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。