維數(shù) | 名稱 | 描述 |
---|---|---|
1 | Series | 帶標(biāo)簽的一維同構(gòu)數(shù)組 |
2 | DataFrame | 帶標(biāo)簽的,大小可變的,二維異構(gòu)表格 |
Pandas 數(shù)據(jù)結(jié)構(gòu)就像是低維數(shù)據(jù)的容器。比如,DataFrame 是 Series 的容器,Series 則是標(biāo)量的容器。使用這種方式,可以在容器中以字典的形式插入或刪除對(duì)象。
此外,通用 API 函數(shù)的默認(rèn)操作要顧及時(shí)間序列與截面數(shù)據(jù)集的方向。多維數(shù)組存儲(chǔ)二維或三維數(shù)據(jù)時(shí),編寫(xiě)函數(shù)要注意數(shù)據(jù)集的方向,這對(duì)用戶來(lái)說(shuō)是一種負(fù)擔(dān);如果不考慮 C 或 Fortran 中連續(xù)性對(duì)性能的影響,一般情況下,不同的軸在程序里其實(shí)沒(méi)有什么區(qū)別。Pandas 里,軸的概念主要是為了給數(shù)據(jù)賦予更直觀的語(yǔ)義,即用“更恰當(dāng)”的方式表示數(shù)據(jù)集的方向。這樣做可以讓用戶編寫(xiě)數(shù)據(jù)轉(zhuǎn)換函數(shù)時(shí),少費(fèi)點(diǎn)腦子。
處理 DataFrame 等表格數(shù)據(jù)時(shí),index(行)或 columns(列)比 axis 0 和 axis 1 更直觀。用這種方式迭代 DataFrame 的列,代碼更易讀易懂:
for col in df.columns:
series = df[col]
# do something with series
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)妥。
更多建議: