我给定的日期可能是也可能不是交易日,并且我有一个按交易日编制索引的熊猫数据框,每个交易日都有回报。

这是我的约会

dt_query = datetime.datetime(2006, 12, 31, 16)


我想做这样的事情(返回的是熊猫数据框)

returns.ix[pd.Timestamp(dt_query + datetime.timedelta(days = 1))]


但是,这可能不起作用,因为提前一天可能不是交易日。我可以制作一个try块,该块会循环并尝试直到找到某些东西为止,但是我想知道是否还有一种更优雅的方式仅使用熊猫。

最佳答案

这可能不是最优雅的解决方案,但它可以工作。

这是一个主意:从dt_query的任何日期开始,在多个日历日(例如10天)内,必须有交易日,而您的下一个交易日只是其中的第一个交易日。因此,您可以在dt_query和dt_query + timedelta(days = 10)内找到收益的所有天数,然后得到第一天。

使用您的示例,它看起来应该像

next_trading_date = returns.index[(returns.index > dt_query) & (returns.index <= dt_query + timedelta(days = 10))][0]

关于python - Pandas 数据框获取数据框的第二天(交易日),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21347873/

10-08 21:32