首页 > 解决方案 > Pandas Series.Shift 截断最后一个值

问题描述

我有一系列 35 个值,索引为 0 到 34。它的设置是这样的(0 到 34 对 1 到 25)与我正在使用的其他系列内联。但是,当我尝试使用 np.npv 函数时,它会处理今天的第一个值,而不是一年后。所以我需要将它推出一年,但在使用 series.shift 或 dataframe.shift 时遇到问题。如果我使用

myseries.shift(1) 

0 处的值变为 NaN(我假设它很容易切换到零),但它在值 34(旧的 33)处停止并截断最后一个值(旧的 34)。

标签: pythonpandasnumpydataframe

解决方案


如果您只需要将索引移一,则可以直接执行此操作而无需触摸pd.Series

In [148]: df = pd.DataFrame([5, 10, 15, 12])

In [149]: df
Out[149]:
    0
0   5
1  10
2  15
3  12

In [150]: df.index += 1

In [151]: df
Out[151]:
    0
1   5
2  10
3  15
4  12

推荐阅读