Pandas常用函式diff和shift函式學習使用
阿新 • • 發佈:2018-12-08
Pandas在資料處理分析中有著很重要的作用,它有兩種核心的資料結構分別是DataFrame和Series,這裡主要是基DataFrame來簡單學習一下它的兩個常用操作函式:diff和shift。因為理解起來比較簡單這裡就不再累贅了,相關的內容都已經放在程式碼裡面了,下面是具體內容:
#!usr/bin/env python #encoding:utf-8 from __future__ import division ''' __Author__:沂水寒城 功能:Pandas diff和shift函式學習 ''' ''' diff函式是用來將資料進行某種移動之後與原資料進行比較得出差異資料 函式形式: DataFrame.diff(periods=1, axis=0) 引數解釋: periods:移動的幅度 axis:移動的軸(按列移動或者按行移動) shift函式是對資料進行移動的操作 函式形式: DataFrame.shift(periods=1, freq=None, axis=0) 引數解釋: periods:移動的幅度 axis:移動的軸(按列移動或者按行移動) shift(n): n>0,表述資料框向下移動,索引不會移動,只有資料移動,若移動後資料缺失則填充為NaN n<0,表述資料框向上移動,索引不會移動,只有資料移動,若移動後資料缺失則填充為NaN ''' import numpy as np import pandas as pd def testFunc(): ''' diff和shift函式學習 ''' data=np.arange(36).reshape(12,3) print 'data:' print data df=pd.DataFrame(data) print 'df:' print df.head(5) print df.info() print '-*'*40 print df.diff() print '-*'*40 print df-df.shift() print '-*'*40 print df-df.shift()==df.diff() #差分操作的兩種等價操作 print '-*'*40 print df.shift(1) print '-*'*40 print df.shift(-1) print '-*'*40 print df.shift(1,axis=1) print '-*'*40 print df.shift(-1,axis=1) if __name__=='__main__': testFunc()
結果如下:
data: [[ 0 1 2] [ 3 4 5] [ 6 7 8] [ 9 10 11] [12 13 14] [15 16 17] [18 19 20] [21 22 23] [24 25 26] [27 28 29] [30 31 32] [33 34 35]] df: 0 1 2 0 0 1 2 1 3 4 5 2 6 7 8 3 9 10 11 4 12 13 14 <class 'pandas.core.frame.DataFrame'> RangeIndex: 12 entries, 0 to 11 Data columns (total 3 columns): 0 12 non-null int32 1 12 non-null int32 2 12 non-null int32 dtypes: int32(3) memory usage: 216.0 bytes None -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 0 1 2 0 NaN NaN NaN 1 3.0 3.0 3.0 2 3.0 3.0 3.0 3 3.0 3.0 3.0 4 3.0 3.0 3.0 5 3.0 3.0 3.0 6 3.0 3.0 3.0 7 3.0 3.0 3.0 8 3.0 3.0 3.0 9 3.0 3.0 3.0 10 3.0 3.0 3.0 11 3.0 3.0 3.0 -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 0 1 2 0 NaN NaN NaN 1 3.0 3.0 3.0 2 3.0 3.0 3.0 3 3.0 3.0 3.0 4 3.0 3.0 3.0 5 3.0 3.0 3.0 6 3.0 3.0 3.0 7 3.0 3.0 3.0 8 3.0 3.0 3.0 9 3.0 3.0 3.0 10 3.0 3.0 3.0 11 3.0 3.0 3.0 -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 0 1 2 0 False False False 1 True True True 2 True True True 3 True True True 4 True True True 5 True True True 6 True True True 7 True True True 8 True True True 9 True True True 10 True True True 11 True True True -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 0 1 2 0 NaN NaN NaN 1 0.0 1.0 2.0 2 3.0 4.0 5.0 3 6.0 7.0 8.0 4 9.0 10.0 11.0 5 12.0 13.0 14.0 6 15.0 16.0 17.0 7 18.0 19.0 20.0 8 21.0 22.0 23.0 9 24.0 25.0 26.0 10 27.0 28.0 29.0 11 30.0 31.0 32.0 -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 0 1 2 0 3.0 4.0 5.0 1 6.0 7.0 8.0 2 9.0 10.0 11.0 3 12.0 13.0 14.0 4 15.0 16.0 17.0 5 18.0 19.0 20.0 6 21.0 22.0 23.0 7 24.0 25.0 26.0 8 27.0 28.0 29.0 9 30.0 31.0 32.0 10 33.0 34.0 35.0 11 NaN NaN NaN -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 0 1 2 0 NaN 0.0 1.0 1 NaN 3.0 4.0 2 NaN 6.0 7.0 3 NaN 9.0 10.0 4 NaN 12.0 13.0 5 NaN 15.0 16.0 6 NaN 18.0 19.0 7 NaN 21.0 22.0 8 NaN 24.0 25.0 9 NaN 27.0 28.0 10 NaN 30.0 31.0 11 NaN 33.0 34.0 -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 0 1 2 0 1.0 2.0 NaN 1 4.0 5.0 NaN 2 7.0 8.0 NaN 3 10.0 11.0 NaN 4 13.0 14.0 NaN 5 16.0 17.0 NaN 6 19.0 20.0 NaN 7 22.0 23.0 NaN 8 25.0 26.0 NaN 9 28.0 29.0 NaN 10 31.0 32.0 NaN 11 34.0 35.0 NaN