對(duì)數(shù)據(jù)進(jìn)行整理以及分組統(tǒng)計(jì)
網(wǎng)站制作、建網(wǎng)站找專業(yè)網(wǎng)站設(shè)計(jì)公司創(chuàng)新互聯(lián):定制網(wǎng)站、模板網(wǎng)站、仿站、小程序設(shè)計(jì)、軟件開發(fā)、app軟件定制開發(fā)等。做網(wǎng)站價(jià)格咨詢創(chuàng)新互聯(lián):服務(wù)完善、10余年建站、值得信賴!網(wǎng)站制作電話:18980820575
一、數(shù)據(jù)整理
1、行、列的插入與刪除
2、索引整理
3、重復(fù)值處理
4、排序,排名
5、數(shù)據(jù)框連接
6、數(shù)據(jù)分段
pandas.cut(x,bins,right=True,labels=None,retbins=False,precision=3,include_lowest=False)
x:需要切分的數(shù)據(jù)
bins:切分區(qū)域
right : 是否包含右端點(diǎn)默認(rèn)True,包含
labels:對(duì)應(yīng)標(biāo)簽,用標(biāo)記來(lái)代替返回的bins,若不在該序列中,則返回NaN
retbins:是否返回間距bins
precision:精度
include_lowest:是否包含左端點(diǎn),默認(rèn)False,不包含
7、多級(jí)索引
8、字符串處理
類似于Python
二、分組統(tǒng)計(jì)
前言分組原理
核心:
1.不論分組鍵是數(shù)組、列表、字典、Series、函數(shù),只要其與待分組變量的軸長(zhǎng)度一致都可以傳入groupby進(jìn)行分組。
2.默認(rèn)axis=0按行分組,可指定axis=1對(duì)列分組。
對(duì)數(shù)據(jù)進(jìn)行分組操作的過(guò)程可以概括為:split-apply-combine三步:
1.按照鍵值(key)或者分組變量將數(shù)據(jù)分組。
2.對(duì)于每組應(yīng)用我們的函數(shù),這一步非常靈活,可以是python自帶函數(shù),可以是我們自己編寫的函數(shù)。
3.將函數(shù)計(jì)算后的結(jié)果聚合。
1 分組模式及其對(duì)象
1.1 分組的一般模式
三個(gè)要素:分組依據(jù)、數(shù)據(jù)來(lái)源、操作及其返回結(jié)果
df.groupby(分組依據(jù))[數(shù)據(jù)來(lái)源].使用操作
1.2 分組依據(jù)的本質(zhì)
1.3Groupby 對(duì)象
通過(guò) ngroups 屬性,可以訪問(wèn)分為了多少組:
通過(guò) groups 屬性,可以返回從 組名映射到 組索引列表的字典:
當(dāng) size 作為 DataFrame 的屬性時(shí),返回的是表長(zhǎng)乘以表寬的大小,但在 groupby 對(duì)象上表示統(tǒng)計(jì)每個(gè)組的 元素個(gè)數(shù):
通過(guò) get_group 方法可以直接獲取所在組對(duì)應(yīng)的行,此時(shí)必須知道組的具體名字:
1.4 分組的三大操作
分組的三大操作:聚合、變換和過(guò)濾
2.聚合函數(shù)
2.1內(nèi)置聚合函數(shù)
包括如下函數(shù): max/min/mean/median/count/all/any/idxmax/idxmin/mad/nunique/skew/quantile/sum/std/var/sem/size/prod
2.2agg 方法
【a】使用多個(gè)函數(shù)
當(dāng)使用多個(gè)聚合函數(shù)時(shí),需要用列表的形式把內(nèi)置聚合函數(shù)的對(duì)應(yīng)的字符串傳入,先前提到的所有字符串都是合法的。
【b】對(duì)特定的列使用特定的聚合函數(shù)
對(duì)于方法和列的特殊對(duì)應(yīng),可以通過(guò)構(gòu)造字典傳入 agg 中實(shí)現(xiàn),其中字典以列名為鍵,以聚合字符串或字符串列表為值。
【c】使用自定義函數(shù)
在 agg 中可以使用具體的自定義函數(shù),需要注意傳入函數(shù)的參數(shù)是之前數(shù)據(jù)源中的列,逐列進(jìn)行計(jì)算
【d】聚合結(jié)果重命名 如果想要對(duì)結(jié)果進(jìn)行重命名,只需要將上述函數(shù)的位置改寫成元組,元組的第一個(gè)元素為新的名字,第二個(gè)位置為原來(lái)的函數(shù),包括聚合字符串和自定義函數(shù)
3 變換和過(guò)濾
3.1 變換函數(shù)與 transform 方法
變 換 函 數(shù) 的 返 回 值 為 同 長(zhǎng) 度 的 序 列, 最 常 用 的 內(nèi) 置 變 換 函 數(shù) 是 累 計(jì) 函 數(shù):cum- count/cumsum/cumprod/cummax/cummin ,它們的使用方式和聚合函數(shù)類似,只不過(guò)完成的是組內(nèi) 累計(jì)操作。
3.2 組索引與過(guò)濾
過(guò)濾在分組中是對(duì)于組的過(guò)濾,而索引是對(duì)于行的過(guò)濾
組過(guò)濾作為行過(guò)濾的推廣,指的是如果對(duì)一個(gè)組的全體所在行進(jìn)行統(tǒng)計(jì)的結(jié)果返回 True 則會(huì)被保留,F(xiàn)alse 則該組會(huì)被過(guò)濾,最后把所有未被過(guò)濾的組其對(duì)應(yīng)的所在行拼接起來(lái)作為 DataFrame 返回。
在 groupby 對(duì)象中,定義了 filter 方法進(jìn)行組的篩選,其中自定義函數(shù)的輸入?yún)?shù)為數(shù)據(jù)源構(gòu)成的 DataFrame 本身,在之前例子中定義的 groupby 對(duì)象中,傳入的就是 df[['Height', 'Weight']] ,因此所有表方法和屬性 都可以在自定義函數(shù)中相應(yīng)地使用,同時(shí)只需保證自定義函數(shù)的返回為布爾值即可。
4 跨列分組
4.1 apply 的引入
4.2 apply 的使用
在設(shè)計(jì)上,apply 的自定義函數(shù)傳入?yún)?shù)與 filter 完全一致,只不過(guò)后者只允許返回布爾值
【a】標(biāo)量情況:結(jié)果得到的是 Series ,索引與 agg 的結(jié)果一致
【b】Series 情況:得到的是 DataFrame ,行索引與標(biāo)量情況一致,列索引為 Series 的索引
【c】DataFrame 情況:得到的是 DataFrame ,行索引最內(nèi)層在每個(gè)組原先 agg 的結(jié)果索引上,再加一層返 回的 DataFrame 行索引,同時(shí)分組結(jié)果 DataFrame 的列索引和返回的 DataFrame 列索引一致
你可以把它當(dāng)做一個(gè)臨時(shí)變量用,比如換成a ,應(yīng)該就能看懂了。不過(guò)我不太喜歡用下劃線做臨時(shí)變量
python count()函數(shù)的功能和用法如下:
統(tǒng)計(jì)字符串
在python中可以使用“count()”函數(shù)統(tǒng)計(jì)字符串里某個(gè)字符出現(xiàn)的次數(shù),該函數(shù)用于統(tǒng)計(jì)次數(shù),其語(yǔ)法是“count(sub, start...
Python count() 方法用于統(tǒng)計(jì)字符串里某個(gè)字符出現(xiàn)的次數(shù)??蛇x參數(shù)為在字符串搜索的開始與結(jié)束位置。
count()函數(shù)
描述:統(tǒng)計(jì)字符串里某個(gè)字符出現(xiàn)的次數(shù)。可以選擇字符串索引的起始位置和結(jié)束位置。? ? ? ? ?
語(yǔ)法:str.count("char", start,end)? 或 str.count("char")? ? - int? ? 返回整數(shù)
str —— 為要統(tǒng)計(jì)的字符(可以是單字符,也可以是多字符)。
star —— 為索引字符串的起始位置,默認(rèn)參數(shù)為0。
end —— 為索引字符串的結(jié)束位置,默認(rèn)參數(shù)為字符串長(zhǎng)度即len(str)
python中g(shù)roupby函數(shù)主要的作用是進(jìn)行數(shù)據(jù)的分組以及分組后地組內(nèi)運(yùn)算!
對(duì)于數(shù)據(jù)的分組和分組運(yùn)算主要是指groupby函數(shù)的應(yīng)用,具體函數(shù)的規(guī)則如下:
df[](指輸出數(shù)據(jù)的結(jié)果屬性名稱).groupby([df[屬性],df[屬性])(指分類的屬性,數(shù)據(jù)的限定語(yǔ),可以有多個(gè)).mean()(對(duì)于數(shù)據(jù)的計(jì)算方式——函數(shù)名稱)
另外,我們也可以過(guò)濾掉和忽略掉你不想要的組,而是返回一個(gè)類似索引對(duì)象。在這個(gè)對(duì)象中,我們分組時(shí)需要設(shè)置一個(gè)過(guò)濾條件,那么沒(méi)有通過(guò)的分組的元素被NaN 填充,這樣分組后被NaN 填充的數(shù)據(jù)就可以忽略了。