关于python:如何在Pandas中选择“每月的最后一个工作日”? | 您所在的位置:网站首页 › python每月最后一个交易日 › 关于python:如何在Pandas中选择“每月的最后一个工作日”? |
我试图在一个月的最后一个条件下对DataFrame进行子集化。 我用了: 12df['Month_End'] = df.index.is_month_end sample = df[df['Month_End'] == 1]这可行,但是我正在使用股市数据,所以我缺少所有实际月末在周末的情况,因此我需要一种方法来选择"月的最后一个工作日"。 您可以通过传入freq='BM'来生成每个月最后一个工作日的时间序列。 例如,要创建一系列2014年最后一个工作日: 123>>> pd.date_range('1/1/2014', periods=12, freq='BM') [2014-01-31 00:00:00, ..., 2014-12-31 00:00:00] Length: 12, Freq: BM, Timezone: None然后,您可以使用此时间序列对DataFrame进行子集/重新索引。 相关讨论 此解决方案有效。 唯一的问题是,在某些系列中,该月的最后一个工作日可能是自定义假期,因此您需要将其纳入等式中。 我在此问题中使用了可接受的答案:stackoverflow.com/questions/45644857/但有没有更好的方法subsetreindex? hernanavella的评论至关重要。 我们如何处理Python中的这个简单问题? 我们只想要一个简单而又干净的实现这个简单的问题:一个月的最后一个股票交易日。pd。除了生成序列以外,您还可以从日期时间索引中解析工作月末,如下所示: 1df['BMonthEnd'] = (df.index + pd.offsets.BMonthEnd(1)).day尽管请注意,这目前会引发无害的警告-请参阅http://pandas.pydata.org/pandas-docs/stable/timeseries.html#using-offsets-with-series-datetimeindex 相关讨论 请注意,此方法并不完美。 如果" d"天是该月的最后一个工作日,则d + BMonthEnd(1)为您提供下个月的最后一个工作日。 |
CopyRight 2018-2019 实验室设备网 版权所有 |