1. 程式人生 > >Pandas庫初步學習筆記【Ⅰ】

Pandas庫初步學習筆記【Ⅰ】

Pandas庫初步學習筆記

  1. DataFrame中橫行叫index,豎行叫columns。

    class pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)[source] 
  2. pandas以類似字典的方式來獲取某一列的值,比如df[‘A’],這會得到df的A列,其中’A’相當於key。如果我們對某一行感興趣呢?這個時候有兩種方法,一種是loc方法,另一種方法是iloc方法。loc是指location的意思,iloc中的i是指integer。前者按照索引即index選取,後者按照位置進行選取,二三行程式碼返回結果相同。

    s = pd.Series(np.array(['I','Love','Data']),index=list('ABC'))
    s.iloc[0] # 按照位置選取
    s.loc['A']# 按照索引選取
    s.iloc[0,0] # 選取第一行的第一個元素
  3. 一些常用的操作

    df.dropna() # 移除資料框 DataFrame 中包含空值的行
    df.dropna(axis=1) # 移除資料框 DataFrame 中包含空值的列
    df.fillna(x) # 將資料框 DataFrame 中的所有空值替換為 x
    s.replace(1,'one') # 將陣列(Series)中的所有1替換為'one'
    s.replace([1,3],['one','three']) # 將陣列(Series)中所有的1替換為'one', 所有的3替換為'three' s.astype(float) # 將陣列(Series)的格式轉化為浮點數 df.rename(columns=lambda x: x + 2) # 將全體列的名字加上2 df.rename(columns={'old_name': 'new_ name'}) # 將選擇的列重新命名 df[(df[col] > 0.5) & (df[col] < 0.7)] # 選取資料框df中對應行的數值大於0.5,並且小於0.7的全部列,作用是篩選出某幾行。
  4. 在進行排序時,只能根據某一行或者某一列大小關係為基準進行排序,如果有多行或多列,則表示優先順序。

    df = pd.DataFrame(np.random.rand(10,5),columns=list('ABCDE'))
    df.sort_values(['A','E'],ascending=[True,False])#按照A列的升序進行排列
  5. 利用groupby對資料進行分組操作,返回值是DataFrameGroupBy型別,只有在呼叫的時候才會進行計算,不能用values展示 groupby用法

  6. apply函式用來利用各種函式對資料框進行各種操作。

    df = pd.DataFrame(np.random.rand(10,5),columns=list('ABCDE'))   
    df.apply(np.mean)#對各列進行求平均操作
    df.apply(np.max,axis=1) # 對資料框df的每一行求最大值
  7. 資料的連線(join)和組合(combine),預設是加入行,可以通過控制index和axis來控制連線的模式,預設的值為NaN。

    df1.append(df2)#在資料框df2的末尾新增資料框df1,其中df1和df2的列數應該相等
    pd.concat([df1, df2],axis=1) # 在資料框df1的列最後新增資料框df2,其中df1和df2的行數應該相等
    

    第二行程式碼示例

  8. 通過apply函式利用numpy的函式可以對dataframe進行陣列相關的操作。有些操作dataframe也自帶。

    df.apply(np.mean) # 對資料框df的每一列求平均值
    df.mean() # 得到資料框df中每一列的平均值