我有这个数据框date用作索引。
close
date
1999-11-18 44.00
1999-11-19 40.38
1999-11-22 44.00
1999-11-23 40.25
1999-11-24 41.06
Run Code Online (Sandbox Code Playgroud)
给定一个任意日期,我想检索位于该日期n之前或之后的行。
例如:
df.loc["1999-11-22"] # Gives third row
df.loc["1999-11-22"].previous_row(-2) # Should give row 1999-11-18
Run Code Online (Sandbox Code Playgroud)
显然previous_row不存在。我试过,shift(-2)但这似乎不起作用:date保持不变并close变成NaN.
df.loc["1999-11-22"].shift(-1)
close NaN
Name: 1999-11-22 00:00:00, dtype: float64
Run Code Online (Sandbox Code Playgroud)
有没有一种不涉及克隆整个数据集的简单方法?
您可以使用index.get_loc:
In [11]: df.index.get_loc("1999-11-22")
Out[11]: 2
In [12]: df.iloc[df.index.get_loc("1999-11-22") - 2]
Out[12]:
close 44.0
Name: 1999-11-18, dtype: float64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
749 次 |
| 最近记录: |