python对列进行平移变换的方法(shift)
在进行数据操作时,经常会碰到基于同一列进行错位相加减的操作,即对某一列进行向上或向下平移(shift).
往常,我们都会使用循环进行操作,但经过查阅相关资料,发现结合pandas里的groupby和shift两个函数就能轻松实现上述要求.
#创建样例数据 temp=pd.DataFrame({'id':[1,1,1,2,2,3],'value':[1,2,3,4,5,6]});temp
Out[1]: idvalue 011 112 213 324 425 536
temp['value_shift']=temp.groupby('id')['value'].shift(1);temp Out[180]: idvaluevalue_shift 011NaN 1121.0 2132.0 324NaN 4254.0 536NaN temp['value_shift_1']=temp.groupby('id')['value'].shift(-1);temp Out[181]: idvaluevalue_shiftvalue_shift_1 011NaN2.0 1121.03.0 2132.0NaN 324NaN5.0 4254.0NaN 536NaNNaN
通过shift函数里面的值来控制向前还是向后偏移,缺少的值会填充NaN.
groupby函数里的参数控制基于什么字段进行shift.
官方文档这里是以index为基准.
以上这篇python对列进行平移变换的方法(shift)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。