pandas:一個神奇的東西(零)

cover
cover

本文寫給誰?

  • 可以用Python寫出Hello world。

  • Excel太弱雞了,vba語法太變態(tài);R沒空學;SPSS,SAS是什么?我就是這樣。

  • 有一定的數(shù)據(jù)處理需求,比如你的七大姑八大姨突然發(fā)你一張表讓你搞。

準備工作

首先,你需要一些有用的資料:

pandas官方文檔

你在網(wǎng)上能夠搜到的所有中文資料都可以認為是該文檔的翻譯。

pandas速查手冊

顧名思義,不夠都是一些簡單操作。

利用Python進行數(shù)據(jù)分析

真要學pandas,這本是一定要買的,因為本書的作者Kinney就是搞出pandas的人,我只能算草草翻過這本書,但我覺得這本書結(jié)構(gòu)略有問題,也不太考慮業(yè)務場景。

打開IDE,抽根煙喝杯水,一個早上過去了

終端輸入:

pip install pandas

在python文件開頭也要寫上:

import pandas as pd

首先你要了解的是,pandas中兩個最基本的對象是Series和DataFrame。

Series的性質(zhì)和Python中原生的dict差不多,一個key對應一個vaule,而且key必須是唯一的。

DataFrame(以下簡稱df)的性質(zhì)則和SQL中的table差不多,但和MySQL不同的是,對于一個df加.T就可以實現(xiàn)轉(zhuǎn)置,據(jù)Kinney自己說pandas的行(row)操作和列(column)操作基本是平衡的。

什么叫基本平衡呢?就是有時不平衡,舉一個例子,比如往一個Series或者df的最后(或著某一位置)插入一行數(shù)據(jù),目前沒有什么帥氣的方法,能想到的可行的解決辦法是:

  • 用dict或者其他手段創(chuàng)建一個新的df,然后用append操作將兩個df合并起來。

  • df.T轉(zhuǎn)置轉(zhuǎn)置原表,然后插入一個新的列。

想想比較丑陋,其實Stack上有人問過這樣的問題,一位大神給出了答案:

如何帥氣地插入一行-stack overflow

pandas本身依賴numpy的,而ndarray在內(nèi)存里占據(jù)這一段連續(xù)的內(nèi)存空間,任何改變ndarray長度的操作都勢必讓所有value改變內(nèi)存中的位置,也確實比較慢。

Pandas適合處理多種類型的數(shù)據(jù):

具有不同數(shù)據(jù)類型列的表格數(shù)據(jù),如SQL表或Excel電子表格
有序或無序(不固定頻率)的時間序列數(shù)據(jù)。
帶有行和列標簽的任意矩陣數(shù)據(jù)
任何其他形式的觀測/統(tǒng)計數(shù)據(jù)集。
Pandas主要包含三種數(shù)據(jù)結(jié)構(gòu),分別是Series(一維),DataFrame(二維),Panel(三維)。

其中Series和DataFrame可以用于處理絕大多數(shù)金融,統(tǒng)計,社會科學和許多工程領(lǐng)域的典型問題。對于R用戶而言,DataFrame在支持所有R的data.frame的功能的基礎上還能有更豐富的應用。Pandas庫建立在NumPy庫之上,旨在與科學計算環(huán)境和許多其他第三方庫完美集成。

Pandas的優(yōu)勢:

可以輕易的處理浮點及非浮點數(shù)據(jù)類型的缺失值(NaN)
大小可變:DataFrame和Panel都可以刪除或插入列
數(shù)據(jù)自動對齊
靈活強大的分組功能,可對數(shù)據(jù)集進行拆分組合操作
方便的將其他Python和NumPy數(shù)據(jù)結(jié)構(gòu)中不同類索引的數(shù)據(jù)轉(zhuǎn)換為DataFrame對象
基于智能標簽的切片,花式索引,輕易從大數(shù)據(jù)集中取出子集
直觀的合并,連接數(shù)據(jù)集
輕易的重新定義數(shù)據(jù)集形狀和轉(zhuǎn)置
軸(axes)的分層標簽(使每個元組有多個標簽成為可能)

Pandas庫是統(tǒng)計科學家在分析數(shù)據(jù)時的理想工具,非常適合應用于數(shù)據(jù)清洗,分析/建模,然后將分析結(jié)果組織成適合于繪圖或表格顯示的形式的全部過程。statsmodel庫依賴Pandas庫,使其成為Python統(tǒng)計計算系統(tǒng)的重要組成部分。
Pandas庫已經(jīng)廣泛應用于金融數(shù)據(jù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容