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

熱線電話:13121318867

登錄
首頁大數(shù)據時代數(shù)據分析師教程《Python數(shù)據分析極簡入門》第2節(jié) 1 Pandas簡介
數(shù)據分析師教程《Python數(shù)據分析極簡入門》第2節(jié) 1 Pandas簡介
2024-11-20
收藏

《Python數(shù)據分析極簡入門》

第2節(jié) 1 Pandas簡介

說好開始學Python,怎么到了Pandas?

前面說過,既然定義為極簡入門,我們只抓核心中的核心。

那怎么樣挑核心重點呢?

在你不熟悉的情況下,肯定需要請教別人,需要注意的是,不要去問應該學什么編程語言,而是去問,如果只學一門編程語言,應該學什么?

這樣,問題就從多分類的選擇題,變成了一道優(yōu)化題!有人說選擇大于努力,而現(xiàn)實中的情況是,我們選的不是答案只有對與錯的問題,而是在好、次好與更好之間選更好,這個道理看似簡單,但卻不容易做到,小到你學Python應該優(yōu)先學什么,大到一個國家的資源配置應該優(yōu)先發(fā)展什么?本質上都是最優(yōu)化問題。

回到今天的主題,如果學Python語言,但只學一個庫,你要學什么?有人說人工智能好啊,我要學算法,錯!算法再牛也需要你從底層的數(shù)據開始,所以答案肯定是Pandas,這屬于做數(shù)據分析處理數(shù)據必知必會的內容。

今天的故事,要從08年北京奧運會那年說起,遠在紐約一家量化投資公司的打工人Wes McKinney ,由于在日常數(shù)據分析工作中 想多摸會兒魚 備受Excel與SQL等工具的折磨,于是他開始構建了一個新項目 Pandas,用來解決數(shù)據處理過程中遇到的全部任務。

Wes McKinney
Wes McKinney

什么是Pandas?

Pandas是一個開源的Python庫,主要用于數(shù)據分析、數(shù)據處理、數(shù)據可視化。

Pandas作為Python數(shù)據分析的核心包,提供了大量的數(shù)據分析函數(shù),包括數(shù)據處理、數(shù)據抽取、數(shù)據集成、數(shù)據計算等基本的數(shù)據分析手段。

Pandas的名稱來自于面板數(shù)據(panel data)和python數(shù)據分析(data analysis)的簡稱。

千萬記得Pandas不是咱們的國寶大熊貓的復數(shù)形式?。。。ūM管這一強調極有可能適得其反,但還是忍不住貼一張panda的圖)

為什么Pandas必學?

  • SQL語句還要簡潔,查詢數(shù)據事半功倍!簡單

  • 基于Numpy數(shù)值計算,數(shù)據處理高效運算!高效

  • 支持數(shù)值、文本和可視化,快速靈活完成數(shù)據需求!強大

如果用一個字來說明,那就是“快”。這個快指的是你從開始構思到寫完代碼的時間,毫不夸張地說,當你把數(shù)據需求用文字梳理清楚的時候,基本上也就相當于用Python實現(xiàn)了這一過程,因為在Python的世界,所見即所得

怎么學Pandas?

把大象放進冰箱里需要三步,打開冰箱門、把大象塞進去、關上冰箱門。同樣地,怎么學Pandas,也需要三步

第一步,必須了解Pandas的數(shù)據結構。在之前的系列文章里面說過,學習語言學習的三板斧,數(shù)據結構,流程控制,自定義函數(shù)。這里pandas雖然只是一個庫,但同樣有其數(shù)據結構

第二步,必須學會用Pandas做數(shù)據處理。這是你做數(shù)據分析的基本功,里面包含如下內容

第三步,掌握一些Pandas高階與展示技巧。這是你分析或展示的必備技能

下一節(jié):《第2節(jié) 2 Pandas數(shù)據類型

這里分享一個你一定用得到的小程序——CDA數(shù)據分析師考試小程序。 它是專為CDA數(shù)據分析認證考試報考打造的一款小程序。可以幫你快速報名考試、查成績、查證書、查積分,通過該小程序,考生可以享受更便捷的服務。 掃碼加入CDA小程序,與圈內考生一同學習、交流、進步!

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

若不方便掃碼,搜微信號:CDAshujufenxi

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

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(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調用 initGeetest 進行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調,回調的第一個參數(shù)驗證碼對象,之后可以使用它調用相應的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".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 = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+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); }