熊猫:相邻元素的系列商

时间:2016-07-02 16:39:09

标签: pandas

对于系列xx.diff()使用yy[0] == NaNy[1] == x[1] - x[0]等创建新系列y[2] == x[2] - x[1]。假设我想要相当于除法而不是减法,例如y[1] == x[1] / x[0]等。计算它的好方法是什么?

2 个答案:

答案 0 :(得分:4)

您可以将D3DX11shift功能的组合用于div,如下所示:

pandas.Series

pandas div

pandas shift

答案 1 :(得分:2)

使用以下系列:

ser = pd.Series(np.random.randn(5))

ser
Out[65]: 
0    1.206456
1   -0.209808
2   -0.200228
3    0.657034
4    1.395551
dtype: float64

您可以使用rolling().apply()(pandas 0.18.0 +):

ser.rolling(2).apply(lambda x: x[1] / x[0])
Out[66]: 
0         NaN
1   -0.173904
2    0.954342
3   -3.281423
4    2.124018
dtype: float64

或者,pd.rolling_apply()(对于早期版本):

pd.rolling_apply(ser, 2, lambda x: x[1] / x[0])
Out[67]: 
0         NaN
1   -0.173904
2    0.954342
3   -3.281423
4    2.124018
dtype: float64