One - One Code All

Blog Content

python中pandas的dataframe行移动shift

Python 统计学-科学计算   2015-01-05 22:01:07

pandas DataFrame.shift()函数可以把数据移动指定的位数

period参数指定移动的步幅,可以为正为负.axis指定移动的轴,1为行,0为列.

>>> import pandas as pd
>>> data1 = pd.DataFrame({
...     'a': [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
...     'b': [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
... })
>>> data1
   a  b
0  0  9
1  1  8
2  2  7
3  3  6
4  4  5
5  5  4
6  6  3
7  7  2
8  8  1
9  9  0
>>> data2 = data1.shift(axis=0)
>>> data2
     a    b
0  NaN  NaN
1  0.0  9.0
2  1.0  8.0
3  2.0  7.0
4  3.0  6.0
5  4.0  5.0
6  5.0  4.0
7  6.0  3.0
8  7.0  2.0
9  8.0  1.0
>>> data2 = data1['b'].shift(axis=0)
>>> data2
0    NaN
1    9.0
2    8.0
3    7.0
4    6.0
5    5.0
6    4.0
7    3.0
8    2.0
9    1.0
Name: b, dtype: float64
>>> data1['b'] = data1['b'].shift(axis=0)
>>> data1
   a    b
0  0  NaN
1  1  9.0
2  2  8.0
3  3  7.0
4  4  6.0
5  5  5.0
6  6  4.0
7  7  3.0
8  8  2.0
9  9  1.0

如果想往上或者往左移动,可以指定(periods=-1):

data4 = data1.shift(periods=-1, axis=0)



上一篇:python遍历目录,拼接域名
下一篇:Go语言中使用 Go 关键字和 Channel 实现并行

The minute you think of giving up, think of the reason why you held on so long.