pandas 在yfinance中获得每月的第一次观察

0aydgbwb  于 2023-04-28  发布在  其他
关注(0)|答案(1)|浏览(95)

我正试图使用yfinance库中的数据获得本月的第一个Ibovespa观察结果。我做了如下代码:

from pandas_datareader import data as wb
import pandas as pd
import yfinance as yf
yf.pdr_override()

wb.get_data_yahoo('^BVSP',
                         start = '2019-10-03', 
                         end = '2020-05-01',
                         interval='1mo')['Adj Close']

Date
2019-10-31    108233.0
2019-11-30    115645.0
2019-12-31    113761.0
2020-01-31    104172.0
2020-03-01     73020.0
2020-04-01     80506.0
Name: Adj Close, dtype: float64

这不是我想要的结果。我需要这个月第一个工作日的观察。类似于这个的东西:

Date
2019-10-01    108233.0
2019-11-01    115645.0
2019-12-01    113761.0
2020-01-01    104172.0
2020-03-01     73020.0
2020-04-01     80506.0
Name: Adj Close, dtype: float64

如何着手达到这一结果?

wsxa1bj1

wsxa1bj11#

已尝试以monthly的间隔打印 Dataframe ,所有数据均在第一天打印。也许市场仍然关闭,这就是原因。.?真的,如果您查看每日数据,则1月份的first daysecond number
我可以建议使用每日数据和grouping,然后使用year, monthaggregate('first')来获取第一个值。

import pandas as pd
import yfinance as yf
from pandas_datareader import data as wb

yf.pdr_override()

df = wb.get_data_yahoo('^BVSP',
                       start='2019-10-03',
                       end='2020-05-01',
                       interval='1d')['Adj Close']

df = df.reset_index()
df = df.groupby([df['Date'].dt.year, df['Date'].dt.month]).aggregate('first')
df = df.set_index('Date')

相关问题