首页 > 解决方案 > 如何在不知道精确索引的情况下按列索引拆分 DataFrame?

问题描述

我有一个股票价格数据库,其中包含从 2001 年 12 月 31 日到 2021 年 12 月 31 日的交易日的 DateTime 指数。我必须将数据库划分为 6 个月,例如从 2001 年 1 月 1 日到 2001 年 6 月 30 日,依此类推。我的想法是使用以下内容:

period_1 = df.loc["20010101": "20010530", :]

它有效,但是当我尝试这个时:

period_2 = df.loc["20010601":"20013112", :]

它不起作用。那是因为这些指数不存在(这些是周末),所以正确的方法是选择前一个交易日。我怎么能做到?

谢谢!

标签: pythonpandas

解决方案


df.index.get_loc()函数返回请求标签的整数位置、切片或布尔掩码。该函数适用于已排序和未排序的索引。如果传递的值不存在于索引中,它会提供各种选项。

尝试df.index.get_loc(your_datetime, method='nearest'))


推荐阅读