借著別人的文章(王圣元 [王的機(jī)器] ),復(fù)盤一下python的基礎(chǔ)知識(shí)點(diǎn)。感謝原作者的分享!
Pandas 用的比較多,這里只作大綱回顧
Pandas 里面的數(shù)據(jù)結(jié)構(gòu)是多維數(shù)據(jù)表,細(xì)化為一維的 Series,二維的 DataFrame。
多維數(shù)據(jù)表 = 多維數(shù)組 + 描述
其中
Series = 1darray + index
DataFrame = 2darray + index + columns
【創(chuàng)建數(shù)據(jù)表】創(chuàng)建 Series, DataFrame, Panel 用下面語(yǔ)句
pd.Series(x, index=idx)
pd.DataFrame(x, index=idx, columns=col)
pd.Panel(x, item=itm, major_axis=n1, minor_axis=n2)
DataFrame 由多個(gè) Series 組成,Panel 有多個(gè) DataFrame 組成。Series 非常類似于一維的 DataFrame。
【索引和切片數(shù)據(jù)表】在索引或切片 DataFrame,有很多種方法。最好記的而不易出錯(cuò)的是用基于位置的 at 和 loc,和基于標(biāo)簽的 iat 和 iloc,具體來(lái)說(shuō),索引用 at 和 iat,切片用 loc 和 iloc。帶 i 的基于位置,不帶 i 的基于標(biāo)簽。
用 MultiIndex 可以創(chuàng)建多層索引的對(duì)象,獲取 DataFrame df 的信息可用
df.loc[1st].loc[2nd]
df.loc[1st].iloc[2nd]
df.iloc[1st].loc[2nd]
df.iloc[1st].iloc[2nd]
要調(diào)換 level 可用
df.index.swaplevel(0,1)
df.columns.swaplevel(0,1)
要設(shè)置和重設(shè) index 可用
df.set_index( columns )
df.reset_index
【合并數(shù)據(jù)表】用 merge 函數(shù)按數(shù)據(jù)表的共有列進(jìn)行左/右/內(nèi)/外合并。
【連接數(shù)據(jù)表】用 concat 函數(shù)對(duì) Series 和 DataFrame 沿著不同軸連接。
【重塑數(shù)據(jù)表】用 stack 函數(shù)將「列索引」變成「行索引」,用 unstack 函數(shù)將「行索引」變成「列索引」。它們只是改變數(shù)據(jù)表的布局和展示方式而已。
【透視數(shù)據(jù)表】用 pivot 函數(shù)將「一張長(zhǎng)表」變成「多張寬表」,用 melt 函數(shù)將「多張寬表」變成「一張長(zhǎng)表」。它們只是改變數(shù)據(jù)表的布局和展示方式而已。
【分組數(shù)據(jù)表】用 groupBy 函數(shù)按不同「列索引」下的值分組。一個(gè)「列索引」或多個(gè)「列索引」就可以。
【整合數(shù)據(jù)表】用 agg 函數(shù)對(duì)每個(gè)組做整合而計(jì)算統(tǒng)計(jì)量。
【split-apply-combine】用 apply 函數(shù)做數(shù)據(jù)分析時(shí)美滋滋。