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

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐