如何提取DataFrame中指定日期范围的Adj Close列子集
提取目标DataFrame子集的解决方案
yfinance返回的DataFrame采用多层列索引(第一层为数据类型,第二层为股票代码),你可以通过以下几种简洁方式提取仅包含所有股票Adj Close列、且日期范围在2023-10-03至2023-10-06的子集:
方法1:分步筛选
先提取所有股票的调整收盘价列,再筛选目标日期范围:
# 获取所有股票的Adj Close列 adj_close_data = new_df1['Adj Close'] # 筛选指定日期区间 target_subset = adj_close_data.loc['2023-10-03':'2023-10-06'] target_subset
方法2:一步完成筛选
通过loc同时指定行(日期)和列(Adj Close)范围,更简洁:
target_subset = new_df1.loc['2023-10-03':'2023-10-06', 'Adj Close'] target_subset
方法3:保留多层列结构(可选)
如果需要保留原DataFrame的多层列格式(列名显示为(Adj Close, 股票代码)),可以使用slice(None)匹配所有股票:
target_subset = new_df1.loc['2023-10-03':'2023-10-06', ('Adj Close', slice(None))] target_subset
内容的提问来源于stack exchange,提问作者Nazir
相关产品推荐
相关产品推荐

