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)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
热门推荐
10 儿子立冬祝福语简短独特
11 婆婆66岁祝福语简短
12 高考加油祝福语简短押韵
13 哥哥结婚妹妹祝福语 简短
14 分别祝福语简短情话英文
15 病人的生日祝福语简短
16 对战友的祝福语简短
17 最佳元旦祝福语简短学校
18 年末祝福语简短小清新