Chi*_*u05 2 python dataframe python-3.x pandas
我有一个数据框,如下所示:
Sales Look_back_period
0 100 1
1 102 1
2 103 2
3 108 2
4 100 3
5 90 4
6 97 6
The output I want:
Sales Look_back_period lag_sales
0 100 1 NaN
1 102 1 100
2 103 2 100
3 108 2 102
4 100 3 102
5 90 4 102
6 97 6 100
Run Code Online (Sandbox Code Playgroud)
我想基于的方式改变销售价值Look_back_period.我在做的是:
df[‘lag_sales’] = df.Sales.shift(df.look_back_period)
Run Code Online (Sandbox Code Playgroud)
但它不起作用.
实际上你可以reindex从索引中减去look_back_period值:
In[18]:
df['Look_back_period'] = df['Sales'].reindex(df.index - df['Look_back_period']).values
df
Out[18]:
Sales Look_back_period lag_sales
0 100 NaN NaN
1 102 100.0 100.0
2 103 100.0 100.0
3 108 102.0 102.0
4 100 102.0 102.0
5 90 102.0 102.0
6 97 100.0 100.0
Run Code Online (Sandbox Code Playgroud)
我们必须转换为numpy数组使用,.values因为没有这个你将得到一个ValueError: cannot reindex from a duplicate axis错误
| 归档时间: |
|
| 查看次数: |
242 次 |
| 最近记录: |