【Python基础】Pandas笔记---概述与数据结构
點(diǎn)擊上方“潛心的Python小屋”關(guān)注我們,第一時(shí)間推送優(yōu)質(zhì)文章。
前言
大家好,我是潛心。因?yàn)樽罱鰧?shí)驗(yàn)發(fā)現(xiàn)Pandas的數(shù)據(jù)處理技術(shù)忘記了,所以準(zhǔn)備系統(tǒng)的概述一下Pandas的使用方法。
本文約1.5k字,預(yù)計(jì)閱讀5分鐘。
Pandas概覽
Pandas?是 Python的核心數(shù)據(jù)分析支持庫(kù),提供了快速、靈活、明確的數(shù)據(jù)結(jié)構(gòu),旨在簡(jiǎn)單、直觀地處理關(guān)系型、標(biāo)記型數(shù)據(jù)。Pandas 的目標(biāo)是成為 Python 數(shù)據(jù)分析實(shí)踐與實(shí)戰(zhàn)的必備高級(jí)工具,其長(zhǎng)遠(yuǎn)目標(biāo)是成為最強(qiáng)大、最靈活、可以支持任何語(yǔ)言的開源數(shù)據(jù)分析工具。
數(shù)據(jù)結(jié)構(gòu)
Pandas 的主要數(shù)據(jù)結(jié)構(gòu)是 Series(一維數(shù)據(jù))與 DataFrame(二維數(shù)據(jù)),這兩種數(shù)據(jù)結(jié)構(gòu)足以處理金融、統(tǒng)計(jì)、社會(huì)科學(xué)、工程等領(lǐng)域里的大多數(shù)典型用例。
為什么要有兩個(gè)數(shù)據(jù)結(jié)構(gòu)??因?yàn)镻andas 數(shù)據(jù)結(jié)構(gòu)就像是低維數(shù)據(jù)的容器。比如,DataFrame 是 Series 的容器,Series 則是標(biāo)量的容器。使用這種方式,可以在容器中以字典的形式插入或刪除對(duì)象。
Pandas 里,軸的概念主要是為了給數(shù)據(jù)賦予更直觀的語(yǔ)義,即用“更恰當(dāng)”的方式表示數(shù)據(jù)集的方向。
Series
Series是帶標(biāo)簽的一維數(shù)組,可存儲(chǔ)整數(shù)、浮點(diǎn)數(shù)、字符串、Python 對(duì)象等類型的數(shù)據(jù),軸標(biāo)簽統(tǒng)稱為索引。
創(chuàng)建Series對(duì)象:
s?=?pd.Series(data=None,?index=None)其中,data可以為:數(shù)組、字典、標(biāo)量等,index可選,長(zhǎng)度必須與data一致,默認(rèn)為數(shù)值型索引。
導(dǎo)入包:
import?pandas?as?pd import?numpy?as?np例:
In[5]:?pd.Series([1,?2,?3,?4,?5]) Out[5]:? 0????1 1????2 2????3 3????4 4????5 dtype:?int64In[6]:?d?=?{'a':1,?'b':2,?'c':3} In[7]:?pd.Series(d) Out[7]:? a????1 b????2 c????3 dtype:?int64Dataframe
DataFrame?是由多種類型的列構(gòu)成的二維標(biāo)簽數(shù)據(jù)結(jié)構(gòu), 是最常用的 Pandas 對(duì)象。
創(chuàng)建DataFrame對(duì)象:
df?=?pd.DataFrame(data=None,?index=None,?columns=None,?dtype=None)其中,data可以為:一維二維的ndarray、列表、字典等,index為行標(biāo)簽(索引),columns為列標(biāo)簽(特征),dtype為對(duì)象類型。
例:
In[8]:?d?=?{'one':?pd.Series([1.,?2.,?3.],?index=['a',?'b',?'c']),?'two':?pd.Series([1.,?2.,?3.,?4.],?index=['a',?'b',?'c',?'d'])} In[9]:?pd.DataFrame(d) Out[9]:?one??two a??1.0??1.0 b??2.0??2.0 c??3.0??3.0 d??NaN??4.0In[10]:?l?=?[[1,?2,?3],?[4,?5,?6]] In[11]:?pd.DataFrame(l,?columns=['a',?'b',?'c']) Out[11]:?a??b??c 0??1??2??3 1??4??5??6大小可變與數(shù)據(jù)復(fù)制
Pandas 所有數(shù)據(jù)結(jié)構(gòu)的值都是可變的,但數(shù)據(jù)結(jié)構(gòu)的大小并非都是可變的,比如,Series 的長(zhǎng)度不可改變,但 DataFrame 里就可以插入列。
Pandas 里,絕大多數(shù)方法都不改變?cè)嫉妮斎霐?shù)據(jù),而是復(fù)制數(shù)據(jù),生成新的對(duì)象。一般來(lái)說(shuō),原始輸入數(shù)據(jù)不變更穩(wěn)妥。所以大多數(shù)方法都是返回一個(gè)對(duì)象,若不進(jìn)行復(fù)制,那原對(duì)象不會(huì)進(jìn)行改變。
In[12]:?df1?=?pd.DataFrame(d) In[13]:?df2?=?df1.transpose() In[14]:?df1 Out[14]:?one??two a??1.0??1.0 b??2.0??2.0 c??3.0??3.0 d??NaN??4.0 In[15]:?df2 Out[15]:?a????b????c????d one??1.0??2.0??3.0??NaN two??1.0??2.0??3.0??4.0Pandas優(yōu)勢(shì)
Pandas的優(yōu)勢(shì)部分包括如下:
處理浮點(diǎn)與非浮點(diǎn)數(shù)據(jù)里的缺失數(shù)據(jù),表示為?NaN;
大小可變:插入或刪除?DataFrame 等多維對(duì)象的列;
自動(dòng)、顯式數(shù)據(jù)對(duì)齊:顯式地將對(duì)象與一組標(biāo)簽對(duì)齊,也可以忽略標(biāo)簽,在 Series、DataFrame 計(jì)算時(shí)自動(dòng)與數(shù)據(jù)對(duì)齊;
強(qiáng)大、靈活的分組(group by)功能:拆分-應(yīng)用-組合數(shù)據(jù)集,聚合、轉(zhuǎn)換數(shù)據(jù);
把 Python 和 NumPy 數(shù)據(jù)結(jié)構(gòu)里不規(guī)則、不同索引的數(shù)據(jù)輕松地轉(zhuǎn)換為 DataFrame 對(duì)象;
基于智能標(biāo)簽,對(duì)大型數(shù)據(jù)集進(jìn)行切片、花式索引、子集分解等操作;
總結(jié)
Pandas 速度很快,適用于各個(gè)數(shù)據(jù)分析領(lǐng)域,它的數(shù)據(jù)結(jié)構(gòu)有Series和DataFrame兩種結(jié)構(gòu),實(shí)際中主要是對(duì)DataFrame對(duì)象進(jìn)行處理分析。接下來(lái)會(huì)根據(jù)各個(gè)實(shí)例數(shù)據(jù)集,如:鳶尾花、紅酒、乳腺癌數(shù)據(jù)集進(jìn)行實(shí)際操作,鞏固Pandas數(shù)據(jù)分析技術(shù)。
參考文獻(xiàn)
[1]. Pandas中文文檔: https://www.pypandas.cn/docs/getting_started/overview.html
往期精彩回顧適合初學(xué)者入門人工智能的路線及資料下載機(jī)器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印機(jī)器學(xué)習(xí)在線手冊(cè)深度學(xué)習(xí)筆記專輯《統(tǒng)計(jì)學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 AI基礎(chǔ)下載機(jī)器學(xué)習(xí)的數(shù)學(xué)基礎(chǔ)專輯獲取一折本站知識(shí)星球優(yōu)惠券,復(fù)制鏈接直接打開:https://t.zsxq.com/662nyZF本站qq群1003271085。加入微信群請(qǐng)掃碼進(jìn)群(如果是博士或者準(zhǔn)備讀博士請(qǐng)說(shuō)明):總結(jié)
以上是生活随笔為你收集整理的【Python基础】Pandas笔记---概述与数据结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【NLP】基于深度学习的文本分类应用
- 下一篇: 【Python基础】Pandas笔记--