繁体   English   中英

子设置Python中数据框的每月最后一个工作日

[英]Sub setting the Last Business Day of Month for data frame in Python

我有一个下面的数据框,并且想对一个月中最后一个工作日的数据框进行子集化以分隔数据框。

df = Date Open High Low Close Adj Close Volume 0 2007-06-18 0.33979 0.33979 0.33979 0.33979 0.33979 1591888 1 2007-06-29 0.33074 0.33074 0.33074 0.33074 0.33074 88440 2 2007-06-20 0.33526 0.33526 0.33526 0.33526 0.33526 3538 3 2007-06-21 0.32113 0.32113 0.32113 0.32113 0.32113 3550 4 2007-06-22 0.34713 0.34713 0.34713 0.34713 0.34713 670

df_output =

Date Open High Low Close Adj Close Volume 1 2007-06-29 0.33074 0.33074 0.33074 0.33074 0.33074 88440

我已经尝试过df = pd.to_datetime(df['Date'], format='%Y%m%d') + pd.offsets.BMonthEnd(1)但无法正常工作,但我一直在这里查看但未找到正确的方法。 谁能帮我解决这个问题。

您可以这样做:

# in case Date is not in datetime format:
df['Date'] = pd.to_datetime(df['Date'])

df_output = df.loc[df.Date.isin(df.Date + pd.offsets.BMonthEnd(1))]

返回:

>>> df_output
        Date     Open     High      Low    Close  Adj Close  Volume
1 2007-06-29  0.33074  0.33074  0.33074  0.33074    0.33074   88440

说明

df.Date + pd.offsets.BMonthEnd(1)返回您拥有数据的每个月的最后一个工作日的一系列数据:

>>> df.Date + pd.offsets.BMonthEnd(1)
0   2007-06-29
1   2007-07-31
2   2007-06-29
3   2007-06-29
4   2007-06-29

然后,使用loc在数据.isin找到实际Date在该系列中的任何行(使用.isin

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM