<10分鐘上手pandas>學(xué)習(xí)筆記

本文系10 Minutes to pandas文檔的個(gè)人學(xué)習(xí)摘要,不包含全部內(nèi)容。

image

0. 數(shù)據(jù)結(jié)構(gòu)介紹

pandas使用兩種重要的數(shù)據(jù)結(jié)構(gòu):SeriesDataFrame

- Series

是一種類似于一維數(shù)組的對象??梢允褂脭?shù)字索引和字符索引。我們可以通過valuesindex屬性獲取序列的索引和值列表。

創(chuàng)建:

image

我們還可使用python的字典來初始化創(chuàng)建一個(gè)series,字典的鍵作為序列的索引,值作為對應(yīng)的值。

在pandas中,series一個(gè)最重要的功能是:在算術(shù)運(yùn)算中會自動對齊相同索引的數(shù)據(jù)。

image
image

s.value_counts() 統(tǒng)計(jì)元素出現(xiàn)次數(shù)

序列有一個(gè)**'str' **屬性,它可以使用常見的string函數(shù),如 s.str.lower()

- DataFrame

DataFrame是pandas中最重要、使用最頻繁的數(shù)據(jù)結(jié)構(gòu),這次的學(xué)習(xí)筆記內(nèi)容也都是對這種數(shù)據(jù)結(jié)構(gòu)進(jìn)行操作。它是一種表格型數(shù)據(jù),既有行索引又有列索引,本質(zhì)是二維Series。創(chuàng)建DataFrame的方法很多 ,最簡單的是傳入一個(gè)列表或numpy數(shù)組組成的字典。


下面著重介紹dataframe的相關(guān)操作

1. 創(chuàng)建dataframe:

image

查看df的信息可以選用這幾個(gè)函數(shù): df.head(), df.tail(), df.describe(),,其中**describe() **顯示df的各種統(tǒng)計(jì)信息(平均數(shù),中位數(shù),標(biāo)準(zhǔn)差,最值,分位數(shù)),在數(shù)據(jù)挖掘處理數(shù)據(jù)時(shí)會用到。df.info()顯示其屬性信息

image

2. 檢索數(shù)據(jù)

dataframe的檢索可以從兩方向進(jìn)行:行和列。我們可以使用行列標(biāo)簽進(jìn)行檢索。

  • 2.1 Getting:
    df['a'] <==> df.a 返回a列數(shù)據(jù)值,是序列類型
    df[0:3] 返回前三行,dataframe類型

  • 2.2 按標(biāo)簽檢索:df.loc[rows_number, columns_list]

image

因?yàn)樾心J(rèn)數(shù)字索引,這里1:4應(yīng)理解為label,不是position。

  • 2.3 按位置檢索: df.iloc[row_number, col_number] ,要求給出的參數(shù)必須是整型,即第幾行第幾列。
image
  • 2.4 布爾索引,常用這種方法來篩選數(shù)據(jù)
image
  • 2.5 Setting:df.at[] & df.iat()類似于 df.loc[] & df.iloc[]。個(gè)人理解是專門用來修改值得吧(雖然loc/iloc也可以 (:

3. 缺失數(shù)據(jù)處理

pandas使用 np.nan(not a numeric)標(biāo)識缺失數(shù)據(jù),NaN不會參與后續(xù)計(jì)算。

  • 3.1 直接丟棄

    df.dropna(how='any', axis = 0)

axis:指定丟棄行(0)或列(1)

how:可選all或any, 默認(rèn)any。與axis共同作用

舉個(gè)例子, df.dropna(how='any', axis = 0) 只要某行數(shù)據(jù)中有NaN,那么就刪除這一行。all要求全部是NaN才刪除。

  • 3.2 填充

df.fillna(value=x)用x填充缺少的數(shù)據(jù)。還可以使用插值法、Imputer或回歸預(yù)測來填充這些數(shù)據(jù)。

  • 3.3 檢查df中有哪些NaN:pd.isna(df) 返回一個(gè)布爾型的DataFrame

4. 操作

  • 4.1 統(tǒng)計(jì)信息: df.mean() / sum() / min()/ max()/ std()/ var()/ corr()/ cov()。
image
  • 4.2 函數(shù)式:apply函數(shù),比如 df.apply(np.cumsum()), df.apply(lambda x: x.max() - x.min())
image

5. 合并

  • 5.1 concat函數(shù),C風(fēng)格 pd.concat([df1, df2])

  • 5.2 join函數(shù),SQL風(fēng)格

  • 5.3 append, df.append(df1, ignore_index=True)

  • 分組, 分組在數(shù)據(jù)分析中很常見
    df.groupby('a') , 和SQL里的groupby有點(diǎn)像。
    groupby函數(shù)處理涉及到一下幾個(gè)步驟:

  1. 按給定條件劃分?jǐn)?shù)據(jù)為組
  2. 對每個(gè)組應(yīng)用函數(shù)處理
  3. 將處理結(jié)果組合到某種數(shù)據(jù)結(jié)構(gòu)

關(guān)于分組的知識,以后詳談~嘻嘻

6. 后續(xù)的時(shí)間序列,分類,Plotting的內(nèi)容接著寫。

簡書小白,第一次寫文章,歡迎大家指正。bye~

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

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