99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁(yè)大數(shù)據(jù)時(shí)代數(shù)據(jù)分析師教程《Python數(shù)據(jù)分析極簡(jiǎn)入門》第2節(jié) 5 Pandas數(shù)據(jù)查看
數(shù)據(jù)分析師教程《Python數(shù)據(jù)分析極簡(jiǎn)入門》第2節(jié) 5 Pandas數(shù)據(jù)查看
2024-11-23
收藏

《Python數(shù)據(jù)分析極簡(jiǎn)入門》

第2節(jié) 5 Pandas數(shù)學(xué)計(jì)算

import pandas as pd
d =  np.array([[8128242596],
       [ 835569839],
       [13395536,  3],
       [7054694812],
       [6380972570]])
df = pd.DataFrame(data = d,
                  columns=list('abcde'))
df
a b c d e
0 81 28 24 25 96
1 8 35 56 98 39
2 13 39 55 36 3
3 70 54 69 48 12
4 63 80 97 25 70

聚合計(jì)算

聚合計(jì)算是指對(duì)數(shù)據(jù)進(jìn)行匯總和統(tǒng)計(jì)的操作。常用的聚合計(jì)算方法包括計(jì)算均值、求和、最大值、最小值、計(jì)數(shù)等。

df['a'].mean()
47.0
df['a'].sum()
235
df['a'].max()
81
df['a'].min()
8
df['a'].count()
5
df['a'].median() # 中位數(shù)
63.0
df['a'].var() #方差
1154.5
df['a'].skew() # 偏度
-0.45733193928530436
df['a'].kurt() # 峰度
-2.9999915595685325
df['a'].cumsum() # 累計(jì)求和
0     81
1     89
2    102
3    172
4    235
Name: a, dtype: int64
df['a'].cumprod() # 累計(jì)求積
0          81
1         648
2        8424
3      589680
4    37149840
Name: a, dtype: int64
df['a'].diff() # 差分
0     NaN
1   -73.0
2     5.0
3    57.0
4    -7.0
Name: a, dtype: float64
df['a'].mad() # 平均絕對(duì)偏差
29.2

按行、列聚合計(jì)算

df.sum(axis=0)  # 按列求和匯總到最后一行
a    235
b    236
c    301
d    232
e    220
dtype: int64
df.sum(axis=1)  # 按行求和匯總到最后一列 
0    254
1    236
2    146
3    253
4    335
dtype: int64
df.describe() # 描述性統(tǒng)計(jì)
a b c d e
count 5.000000 5.000000 5.000000 5.000000 5.000000
mean 47.000000 47.200000 60.200000 46.400000 44.000000
std 33.977934 20.656718 26.395075 30.369392 39.083244
min 8.000000 28.000000 24.000000 25.000000 3.000000
25% 13.000000 35.000000 55.000000 25.000000 12.000000
50% 63.000000 39.000000 56.000000 36.000000 39.000000
75% 70.000000 54.000000 69.000000 48.000000 70.000000
max 81.000000 80.000000 97.000000 98.000000 96.000000

agg函數(shù)

對(duì)整個(gè)DataFrame批量使用多個(gè)聚合函數(shù)

df.agg(['sum''mean','max','min','median'])
a b c d e
sum 235.0 236.0 301.0 232.0 220.0
mean 47.0 47.2 60.2 46.4 44.0
max 81.0 80.0 97.0 98.0 96.0
min 8.0 28.0 24.0 25.0 3.0
median 63.0 39.0 56.0 36.0 39.0

對(duì)DataFramed的某些列應(yīng)用不同的聚合函數(shù)

df.agg({'a':['max','min'],'b':['sum','mean'],'c':['median']})
a b c
max 81.0 NaN NaN
min 8.0 NaN NaN
sum NaN 236.0 NaN
mean NaN 47.2 NaN
median NaN NaN 56.0

apply、applymap、map函數(shù)

注意其中applymap函數(shù)在新版已經(jīng)被棄用,這里的案例是基于pandas=1.3.2寫的

在Python中如果想要對(duì)數(shù)據(jù)使用函數(shù),可以借助apply(),applymap(),map()對(duì)數(shù)據(jù)進(jìn)行轉(zhuǎn)換,括號(hào)里面可以是直接函數(shù)式,或者自定義函數(shù)(def)或者匿名函數(shù)(lambda)

1、當(dāng)我們要對(duì)數(shù)據(jù)框(DataFrame)的數(shù)據(jù)進(jìn)行按行或按列操作時(shí)用apply()

df.apply(lambda x :x.max()-x.min(),axis=1)
#axis=1,表示按行對(duì)數(shù)據(jù)進(jìn)行操作
#從下面的結(jié)果可以看出,我們使用了apply函數(shù)之后,系統(tǒng)自動(dòng)按行找最大值和最小值計(jì)算,每一行輸出一個(gè)值
0    72
1    90
2    52
3    58
4    72
dtype: int64
df.apply(lambda x :x.max()-x.min(),axis=0)
#默認(rèn)參數(shù)axis=0,表示按列對(duì)數(shù)據(jù)進(jìn)行操作
#從下面的結(jié)果可以看出,我們使用了apply函數(shù)之后,系統(tǒng)自動(dòng)按列找最大值和最小值計(jì)算,每一列輸出一個(gè)值
a    73
b    52
c    73
d    73
e    93
dtype: int64

2、當(dāng)我們要對(duì)數(shù)據(jù)框(DataFrame)的每一個(gè)數(shù)據(jù)進(jìn)行操作時(shí)用applymap(),返回結(jié)果是DataFrame格式

df.applymap(lambda x : 1 if x>60 else 0)
#從下面的結(jié)果可以看出,我們使用了applymap函數(shù)之后,
#系統(tǒng)自動(dòng)對(duì)每一個(gè)數(shù)據(jù)進(jìn)行判斷,判斷之后輸出結(jié)果
a b c d e
0 1 0 0 0 1
1 0 0 0 1 0
2 0 0 0 0 0
3 1 0 1 0 0
4 1 1 1 0 1

3、當(dāng)我們要對(duì)Series的每一個(gè)數(shù)據(jù)進(jìn)行操作時(shí)用map()

df['a'].map(lambda x : 1 if x>60 else 0)
0    1
1    0
2    0
3    1
4    1
Name: a, dtype: int64

總結(jié):

apply() 函數(shù)可以在DataFrameSeries上應(yīng)用自定義函數(shù),可以在行或列上進(jìn)行操作。

applymap() 函數(shù)只適用于DataFrame,可以在每個(gè)元素上應(yīng)用自定義函數(shù)。

map() 函數(shù)只適用于Series,用于將每個(gè)元素映射到另一個(gè)值。

以上是數(shù)學(xué)運(yùn)算部分,包括聚合計(jì)算、批量應(yīng)用聚合函數(shù),以及對(duì)SeriesDataFrame進(jìn)行批量映射,接下來我們來看如何對(duì)數(shù)據(jù)進(jìn)行合并拼接


下一節(jié) 《第2節(jié) 6 Pandas合并拼接》

這里分享一個(gè)你一定用得到的小程序——CDA數(shù)據(jù)分析師考試小程序。 它是專為CDA數(shù)據(jù)分析認(rèn)證考試報(bào)考打造的一款小程序??梢詭湍憧焖賵?bào)名考試、查成績(jī)、查證書、查積分,通過該小程序,考生可以享受更便捷的服務(wù)。 掃碼加入CDA小程序,與圈內(nèi)考生一同學(xué)習(xí)、交流、進(jìn)步!

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }