如何筛选pandas数据框中NFLX列?数据框结构解析求助
数据框结构说明与筛选方法
一、数据框的实际结构
当你执行data = yf.download(..., group_by='ticker')后,生成的是**多层列索引(MultiIndex Columns)**的pandas数据框:
NFLX、AAPL、GOOG这些股票代码是第一层列标签,作为分组标识;- 每个股票代码下方的
Open、High、Low、Close等是第二层列标签,对应具体行情字段; - 行标签是日期索引,对应每个交易日的时间节点。
二、筛选NFLX的特定列
方法1:直接基于多层列索引取值
如果要提取NFLX的全部列:
nflx_full = data['NFLX']
如果只需要NFLX的特定列(比如Close和Volume),可以用两种写法:
# 写法1 nflx_selected = data[['NFLX']][['Close', 'Volume']] # 写法2(更严谨的多层索引定位) nflx_selected = data.loc[:, ('NFLX', ['Close', 'Volume'])]
方法2:转换结构后筛选(可选)
如果觉得多层列索引不好操作,可以先调整数据结构,把股票代码转到行索引:
# 将第一层列标签(ticker)转为行的第二层索引 data_stacked = data.stack(level=0) # 筛选NFLX的Close列 nflx_close = data_stacked.loc[data_stacked.index.get_level_values('ticker') == 'NFLX', 'Close']
内容的提问来源于stack exchange,提问作者Tom Donsbach
相关产品推荐
相关产品推荐

