Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中为数据帧子设置月份的最后一个工作日_Python_Pandas_Date_Finance - Fatal编程技术网

在Python中为数据帧子设置月份的最后一个工作日

在Python中为数据帧子设置月份的最后一个工作日,python,pandas,date,finance,Python,Pandas,Date,Finance,我有一个下面的数据框,并希望将该月最后一个工作日的数据框子集,以分离数据框 df= 日期开盘高位低位收盘调整收盘量 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

我有一个下面的数据框,并希望将该月最后一个工作日的数据框子集,以分离数据框

df=

日期开盘高位低位收盘调整收盘量
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_输出=


日期开盘高位低位收盘调整收盘量
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.b monthend(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.bmmonthend(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
查找数据帧中实际
日期
在该系列中的任何行(使用)

这就是我要查找的。。你能解释一下发生了什么吗?是的