Quick dataframe shift · Issue #5609 · pandas-dev/pandas (original) (raw)
Quick implementation of dataframe shift
def quick_shift(df, N=1):
'''Quick implementation of dataframe shift'''
shift_value = np.roll(df.values,N,axis=0)
shift_value[0:N] = np.NaN
return DataFrame(shift_value, index=df.index, columns=df.columns)
DataFrame.quick_shift = quick_shift
Perf benchmark:
df = DataFrame(np.random.rand(10000,500))
%timeit df1 = df.quick_shift(1)
10 loops, best of 3: 55.3 ms per loop
%timeit df2 = df.shift(1)
1 loops, best of 3: 238 ms per loop
Related to #4095