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

新手上路,请多包涵

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

                  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

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

原文由 Toby Mao 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 593
2 个回答

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

 df['2018-01-12':].head(2)

解决方案 #2 :使用 iloc

 i = df.index.get_loc('2018-01-12')
df.iloc[i:i+2]

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

 df.rolling(2).mean()

原文由 Yaniv 发布,翻译遵循 CC BY-SA 3.0 许可协议

您可以使用(获取日期之间的值):

 df.loc['2018-01-12':'2018-01-14']

或者,获取一月份的所有数据:

 df.loc['2018-01']

原文由 vstram 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题