查看某个方法在哪里被调用_一篇文章带你查看并处理Pandas数据
今天我們將一下如何查看Pandas中的各類(lèi)數(shù)據(jù)以及對(duì)Pandas進(jìn)行處理的一些方法,通過(guò)這些方法我們可以更快的掌握Pandas對(duì)數(shù)據(jù)進(jìn)行處理:
- 描述與統(tǒng)計(jì)
- 函數(shù)應(yīng)用
- 修改列/行索引名稱(chēng)
- 類(lèi)型的操作
- 表合并的方式
一、描述與統(tǒng)計(jì)
有時(shí)會(huì)我們?cè)讷@取到數(shù)據(jù)之后,想要查看一下數(shù)據(jù)的簡(jiǎn)單統(tǒng)計(jì)指標(biāo)(比如最大值,最小值,平均值,中位數(shù)等等),如想要查看年齡的最大值,就可以直接對(duì)年齡這一列調(diào)用max方法就可以了。
1、查看最大值
- 查看眾英雄中年齡最大的是多少歲,三種方式都可以查看
第一種是使用np.max()對(duì)info表中的年齡列進(jìn)行操作
第二種是使用np.max()對(duì)info表下的年齡進(jìn)行操作
第三種是info表下的年齡進(jìn)行max()查找
2、查看均值
- 查看眾英雄年齡的均值
類(lèi)似的可以通過(guò)調(diào)用min、mean、quantile、sum 方法可以實(shí)現(xiàn)最小值、平均值、中位數(shù)以及求和。可以看到,對(duì)一個(gè)Series調(diào)用這幾個(gè)方法之后,返回的都只是一個(gè)聚合結(jié)果。
3、按軸求和
下面給大家介紹一個(gè)有意思的方法:cumsum(),看這個(gè)方法的名字就能看出來(lái)它跟sum方法有點(diǎn)關(guān)系,應(yīng)該是用來(lái)求和之類(lèi)的,事實(shí)上的確如此,cumsum也是用來(lái)求和的,不過(guò)他是用來(lái)累加求和的,也就是通過(guò)它得到的結(jié)果與原始的Series或DataFrame的大小相同。
通過(guò)結(jié)果可以看到,cumsum最后的結(jié)果就是將上一次求和的結(jié)果與原始當(dāng)前值求和作為當(dāng)前值。
當(dāng)然如果只是這種功能的話,也就沒(méi)有那么有意思了,這個(gè)方法有意思的是可以對(duì)字符串類(lèi)型的對(duì)象進(jìn)行操作。
4、查看表格信息
雖然說(shuō)常見(jiàn)的各種統(tǒng)計(jì)值都有對(duì)應(yīng)的方法,如果我想要得到多個(gè)指標(biāo)的話,就需要調(diào)用多次方法,是不是顯得有點(diǎn)麻煩呢?
Pandas 設(shè)計(jì)者自然也考慮到了這個(gè)問(wèn)題,想要一次性獲取多個(gè)統(tǒng)計(jì)指標(biāo),只需調(diào)用 describe 方法即可。
可以看到,直接調(diào)用describe方法后,會(huì)顯示出數(shù)字類(lèi)型的一些統(tǒng)計(jì)指標(biāo)比如:總數(shù),平均數(shù),標(biāo)準(zhǔn)差,最小值,最大值,四分位數(shù)等
如果想要查看非數(shù)字類(lèi)型的列的統(tǒng)計(jì)指標(biāo)的話,可以設(shè)置include=[object]來(lái)獲得數(shù)據(jù)。
6、統(tǒng)計(jì)某個(gè)值出現(xiàn)的次數(shù):value_counts
- 查看英雄們的城市和性別出現(xiàn)的次數(shù)
- 查看英雄的年齡分布
7、查看最小值或最大值對(duì)應(yīng)的索引
如果想要查看某列最大值或最小值對(duì)應(yīng)的的索引可以使用idxmax或idxmin方法來(lái)完成。
如果索引不是數(shù)據(jù)的話將會(huì)返回該行的行數(shù)。
- 查看哪位英雄的年齡最小
- 查看哪位英雄的年齡最大
8、離散化
有時(shí)候我們?cè)谔幚頂?shù)據(jù)的時(shí)候會(huì)碰到一些需求,比如想要將年齡進(jìn)行離散化,也就是將年齡分成幾個(gè)區(qū)間,這里我們想要將年齡分成三個(gè)區(qū)間段,就可以使用pandas的cut方法來(lái)完成。
通過(guò)這個(gè)結(jié)果可以看到,cut自動(dòng)生成了等距的離散區(qū)間,如果自己想定義也是沒(méi)有問(wèn)題的。
這里我們將區(qū)間定義為3個(gè)區(qū)間,1-30之間屬于青少年英雄,30-60之間的屬于中年英雄,60-5000就屬于不正常的的地球英雄了。有時(shí)候離散化之后,想要給每個(gè)區(qū)間起一個(gè)名字,那么我們可以指定labels參數(shù)
- 給英雄們添加一列中青年屬性
使用loc[]給表添加列
除了可以使用cut進(jìn)行離散化之外,qcut也可以實(shí)現(xiàn)離散化。Cut是根據(jù)每個(gè)值的大小來(lái)進(jìn)行離散化,qcut是根據(jù)每個(gè)值出現(xiàn)的次數(shù)進(jìn)行離散化的。
9、排序功能
在進(jìn)行數(shù)據(jù)分析時(shí),少不了的就是進(jìn)行數(shù)據(jù)排序。Pandas支持兩種排序方式:按軸(索引或列)排序和按實(shí)際值排序。
9.1、按索引排序
- Sort_index()方法默認(rèn)是按照索引進(jìn)行正序排列
下面這個(gè)是英文索引下的排序
- 還可以通過(guò)sort_values(by=’’)進(jìn)行排序,by的意思是通過(guò)什么區(qū)排序,直接填寫(xiě)也可以。
按性別排序:
按年齡排序:
如果想要進(jìn)行倒序排列,可以設(shè)置參數(shù)axis=1或則ascending=False
9.2、按值排序
如果想要實(shí)現(xiàn)按照實(shí)際值來(lái)排序,例如想要按照年齡排序。
使用sort_values方法,參數(shù)設(shè)置by=age即可
有時(shí)候我們可能需要按照多個(gè)值來(lái)排序,例如:按照年齡和城市來(lái)一起排序,可以設(shè)置參數(shù) by 為一個(gè) list 即可,需要注意的是:list 中每個(gè)元素的順序會(huì)影響排序優(yōu)先級(jí)的,先分組在排序,最后一個(gè)為排序標(biāo)準(zhǔn)。
有時(shí)候數(shù)據(jù)量太大的時(shí)候,我們可能只需要看前幾行或者后幾行的數(shù)據(jù),那么這個(gè)時(shí)候我們就可以用head()和tail()方法查看,head()方法默認(rèn)只打印前5行內(nèi)容,括號(hào)內(nèi)可以填寫(xiě)想要的行數(shù),tail()方法同理,只不過(guò)tail()方法是查看后五行的數(shù)據(jù)。
一般在排序后,我們可能需要獲取最大的n個(gè)值或最小值的n個(gè)值,我們可以使用 nlargest 和 nsmallest 方法來(lái)完成,這比先進(jìn)行排序,再使用 head(n)方法快得多。
二、函數(shù)應(yīng)用
1.根據(jù)現(xiàn)有列生成新的列
- 生成一列元素為英雄年齡對(duì)數(shù)的
- 生成一列身高列
- 生成一列年齡加一的列
- 經(jīng)過(guò)了復(fù)聯(lián)4后,英雄們通過(guò)各種戰(zhàn)斗現(xiàn)在都統(tǒng)一長(zhǎng)高了10厘米,現(xiàn)在再表格中添加一列英雄們的新身高
- 現(xiàn)在給英雄表中添加一列性別代碼列,1代表女士,0代表男式
2、常用函數(shù)
雖說(shuō) Pandas 為我們提供了非常豐富的函數(shù),有時(shí)候我們可能需要自己定制一些函數(shù),并將它應(yīng)用到 DataFrame 或 Series。常用到的函數(shù)有map、apply、applymap。
- Map是是 Series 中特有的方法,通過(guò)它可以對(duì) Series 中的每個(gè)元素實(shí)現(xiàn)轉(zhuǎn)換。如果想通過(guò)年齡判斷用戶是否屬于中年人(50歲以上為中年),通過(guò) map 可以輕松搞定它。
又比如我們可以通過(guò)城市來(lái)判斷地球還是外星,我們可以這么操作。
- Apply方法: apply 方法既支持 Series,也支持 DataFrame,在對(duì) Series 操作時(shí)會(huì)作用到每個(gè)值上,在對(duì) DataFrame 操作時(shí)會(huì)作用到所有行或所有列(通過(guò) axis參數(shù)控制)。
對(duì)于series來(lái)說(shuō),apply方法和map方法差別不大
但是對(duì)于DataFrame來(lái)說(shuō),apply方法的作用對(duì)象是一行或一列數(shù)據(jù)
- Applymap: applymap方法針對(duì)于DataFrame,它作用于DataFrame中的每個(gè)元素,它對(duì)DataFrame的效果類(lèi)似于apply對(duì) Series 的效果。
三、修改列/索引名稱(chēng)
在使用 DataFrame 的過(guò)程中,經(jīng)常會(huì)遇到修改列名,索引名等情況。使用 rename 輕松可以實(shí)現(xiàn)。修改列名只需要設(shè)置參數(shù) columns 即可。
- 將鋼鐵俠和索爾的身高改為170
- 生成一列字符串格式的身高列
- 更改索引列名稱(chēng)
- 修改列標(biāo)簽,將年齡改為age,城市改為city,性別改為sex
- 類(lèi)似的修改索引名只需要修改參數(shù)index就可以了
四、類(lèi)型操作
1、get_dtype_counts()
如果想要獲取每種類(lèi)型的列數(shù)的話,可以使用 get_dtype_counts 方法
2、 astype()
如果想要轉(zhuǎn)換數(shù)據(jù)類(lèi)型的話,可以通過(guò)astype來(lái)完成
2.1、生成一列年齡的對(duì)數(shù)列,并且列元素元素為整數(shù)列
- 首先使用np.log生成一列對(duì)數(shù)列
- 使用round()函數(shù)將對(duì)數(shù)列四舍五入
- 使用astype()將對(duì)數(shù)列轉(zhuǎn)為整數(shù)列
2.2將年齡列改為浮點(diǎn)型
3、其他方法
有時(shí)候會(huì)涉及到將 object 類(lèi)型轉(zhuǎn)為其他類(lèi)型,常見(jiàn)的有轉(zhuǎn)為數(shù)字、日期、時(shí)間差,Pandas 中分別對(duì)應(yīng) to_numeric、to_datetime、to_timedelta 方法。
五、表合并的方式
1、append()方式
- 導(dǎo)入兩個(gè)表
- 查看兩個(gè)表的內(nèi)容
- 使用append()方法將2表導(dǎo)入到1表中
2、concat()
2.1、縱向合并(axis=0(默認(rèn)為0))
2.2、橫向合并(axis=1)
總結(jié)
以上是生活随笔為你收集整理的查看某个方法在哪里被调用_一篇文章带你查看并处理Pandas数据的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 怎么把路由的#号去掉_VLAN应用篇系列
- 下一篇: 成员缩写_「gnps,nbcs」是什么意