numpy,pandas實用知識(數據分析基礎)

numpy

  • numpy的四個屬性:
    ndim 維度 ;shape ;size;dtype 類型

  • ndarray的類型優先級:str>float>int(類型一致,不一致按照類型優先級統一類型)

  • numpy的routines函數
    numpy.ones() 創建全是1的矩陣
    numpy.zeros() 創建全是0的矩陣
    numpy.eye() 創建單位矩陣
    numpy.full(fill_value=,)創建全是fill_value的矩陣

    numpy.linspace(start,end,num=)在一個區間範圍內分num份
    numpy.arange(start,end,step)在一區區間內,按step分多少份

    numpy.random.random()
    numpy.random.randint()
    numpy.random.randn()標準正態分佈
    numpy.random.normal()正態分佈

  • ndarray變形(reshape)

  • numpy級聯:
    numpy.concatenate((n1,n2),axis=)
    numpy.hstack()
    numpy.vstack()

  • 切分(split)
    numpy.split(n,num,axis=)#num是切成幾份,必須能整除才行,num也可以是一個元組,按照裏面的元組索引進行切分
    numpy.hsplit(n,num)
    numpy.vsplit(n,num)

  • 副本(深拷貝):n2=n1.copy()

  • 聚合操作:
    numpy.sum()求和
    numpy.mean()平均值
    numpy.std()標準差
    numpy.var()方差
    numpy.min()最小值
    numpy.max()最大值
    numpy.median()中值
    numpy.sqrt()開方
    numpy.power()冪
    numpy.all()
    numpy.any()
    numpy.argmin()有arg返回的是索引
    numpy.argmax()
    numpy.argsort()

  • numpy中的數學運算(加減符合廣播機制)
    加+
    減-
    積dot(np.dot(n1,n2))

pandas(series,DataFrame)

Series

  • Series的屬性:
    shape,size,index,values

  • Series的創建:
    用dcit創建:
    s=Series(data={‘s’:1,‘f’:4})
    用ndarray創建:(當Series改變時,ndarray中的值也會改變)
    s=Series(data=np.array([2,2,4]))

  • Series高級用法
    去除兩個series的nan:n1.add(n2,fill_name=0)
    轉爲Datatime:pd.to_datatime(Series)
    在DataFrame中,使按某一列排序:d.iloc[d[‘yingyu’].argsort()]
    去重:Series.unique()

DataFrame

  • DataFrame的每一列就是一個Series

  • DataFrame的創建:
    DataFrame(data=,index=,columns=)

  • 顯式索引(.loc)

  • 隱式索引(loc)

  • 處理丟失的數據(None,np.nan)都是NaN
    判斷是否爲丟失數據:data.isnull()是就返回True;data.notnull()不是NaN就返回True
    過濾丟失的數據:data.dropna()默認刪除一行
    填充丟失數據:data.fillna(value=0)(或者寫method的屬性有:bfill,backfill,pad,ffill)

  • 創建多層索引(隱式構造,顯式構造)
    一般使用顯式構造(pd.MultiIndex):arrays,tuples,product
    product:
    index=pd.MultiIndex.from_product([‘一般’,‘厲害’],[‘ddd’,‘dda’,‘eee’])

  • 多層索引查找
    顯式查找:data.loc[(行索引,行索引),(列索引,列索引)]

  • 堆(stack)
    stack 將列索引改爲行索引
    unstack 將行索引轉爲列索引

  • 拼接操作
    級聯:(pd.concat(()),data.append())
    合併:(pd.merge())

  • DataFrame的高級用法
    data.drop(columns=‘xxx’,inplace=True) 刪除一列數據

  • 建立新索引
    data.set_index(‘在頭部索引中的字段’,inplace=True)

  • 排序:
    data.sort_values(by=‘columns’) 根據列的數據進行排序

  • 條件查詢:
    cond = data[‘kk’]==‘Pk’ 條件成立,返回Ture
    data.loc[cond,‘columns’]=‘psdsd’ 對返回True的數據進行修改

處理數據

  • duplicate(去除重複的數據)
    data.duplicated() 不是第一次出現的返回False
    刪除:
    data.drop_duplicates(keep=‘last’,subset[‘a’,‘d’])
    參數說明,keep保留重複的最後一條,對哪些字段進行去重
    取反:~

  • 映射:replace(maping)替換,map(maping)修改,新增,rename(maping)修改頭部索引
    映射首先要定義一個字典mapping={1:值}

  • 異常值檢測:describe
    步驟:1.定義異常值的標準;2.把這個標準寫成寫成條件;3.根據條件取反(~)

  • 取樣(take([]))(取到的是一行數據)
    隨機取樣:
    無法回抽樣:data.take(np.random.randint(0,4,4))
    又返回抽樣:data.take(np.random.permutation(list(range(10))))

數據聚合

分組(groupby);聚合(sum),合併(merge)
  • d.groupby(level=0).groups 分組(參數用level,或者by只能存在一個)
  • 分組聚合:
    data.groupby(by=‘索引’)[[‘價格’,‘體重’]].sum() 根據頭索引分組對每行數據進行分組
  • 合併(merge)
    pd.merge(df1,df2,left_on=,right_on=,right_index=,duffixes=[’’,’’])
    還有參數:ignore_index=,how=’’
  • 其他函數:
    data.add_predix(‘ma_’)(添加前綴)
    data.add_sufdix(’_ma’)(添加後綴)
  • 數據加載
  • 後面還有很多,看下面的xmind也很詳細(因爲寫了太多時間了)
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章