我想在系列矢量上做一些数学运算。我想在矢量中取两行之间的差异。我的第一个直觉是:
def row_diff(prev, next):
return(next - prev)
然后使用它
my_col_vec.apply(row_diff)
但这不符合我的要求。看起来应用是逐行的,这很好,但我似乎无法找到一个等效的操作,这将允许我通过从下一行中减去前一行来轻松地从旧的向量创建一个新向量。
有更好的方法吗?我一直在阅读this文件,看起来不像。
谢谢!
答案 0 :(得分:1)
要计算行间差异,请使用diff
:
In [6]:
df = pd.DataFrame({'a':np.random.rand(5)})
df
Out[6]:
a
0 0.525220
1 0.031826
2 0.260853
3 0.273792
4 0.281368
In [7]:
df['diff'] = df['a'].diff()
df
Out[7]:
a diff
0 0.525220 NaN
1 0.031826 -0.493394
2 0.260853 0.229027
3 0.273792 0.012940
另请尽量避免使用apply
,因为通常有可用的矢量化方法