2024-05-29 05:44:25 发布
网友
我试图在月底的条件下对数据帧进行子集。我用过:
df['Month_End'] = df.index.is_month_end sample = df[df['Month_End'] == 1]
这很有效,但我正在处理股市数据,所以我错过了所有实际月底在周末的情况,我需要一种方法来选择“每月最后一个工作日”。
您可以通过传入freq='BM',生成每月最后一个工作日的time series。
freq='BM'
例如,要创建2014年最后一个工作日的系列:
>>> 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
然后,可以使用此时间序列对数据帧进行子集/重新索引。
除了生成序列,您还可以从datetime索引中解析业务月底,如下所示:
df['BMonthEnd'] = (df.index + pd.offsets.BMonthEnd(1)).day
不过请注意,这目前会引发一个无害的警告-请参见http://pandas.pydata.org/pandas-docs/stable/timeseries.html#using-offsets-with-series-datetimeindex
您可以通过传入
freq='BM'
,生成每月最后一个工作日的time series。例如,要创建2014年最后一个工作日的系列:
然后,可以使用此时间序列对数据帧进行子集/重新索引。
除了生成序列,您还可以从datetime索引中解析业务月底,如下所示:
不过请注意,这目前会引发一个无害的警告-请参见http://pandas.pydata.org/pandas-docs/stable/timeseries.html#using-offsets-with-series-datetimeindex
相关问题 更多 >
编程相关推荐