Pandas Dataframe:如何按索引选择一行,然后获取接下来的几行

Tob*_*Mao 5 python dataframe pandas

在熊猫中,我有一个按时间戳索引的数据帧。看起来像下表:

                 A      B     C     D  
DATE                                                             
2018-01-17        157.52        163.74       157.28         159.84   
2018-01-16        158.25        159.35       155.93         157.40   
2018-01-15        157.15        159.59       156.79         158.86   
2018-01-12        158.25        158.62       157.40         157.52  
Run Code Online (Sandbox Code Playgroud)

我正在尝试按索引选择一行,并选择接下来的几行。(例如,选择从 2018-01-12 开始的两行)。我发现 .loc 和 .iloc 都很难完成这样的任务。有没有其他方法可以做到这一点?

Yan*_*niv 10

解决方案#1:使用 DataFrame 的索引,然后是head(2)

df['2018-01-12':].head(2)
Run Code Online (Sandbox Code Playgroud)

解决方案#2:使用iloc

i = df.index.get_loc('2018-01-12')
df.iloc[i:i+2]
Run Code Online (Sandbox Code Playgroud)

奖励解决方案#3:您似乎正在分析股票数据。也许您对使用滚动窗口可以更有效地完成的事情感兴趣?(可能是移动平均线?)考虑使用rolling,例如计算滚动平均值:

df.rolling(2).mean()
Run Code Online (Sandbox Code Playgroud)