Pandas .loc为何支持三个参数?FinanceToolkit代码疑问
为什么Pandas的.loc能传入三个参数?
这是因为income_statement_growth并不是普通的二维DataFrame,而是一个**带有多层列索引(MultiIndex Columns)**的结构。
- 普通Pandas DataFrame的行和列都是单层索引,所以
.loc只需要行、列两个参数。但当列是多层索引时(比如这里列的第一层是财务指标名称,第二层是公司代码),.loc支持传递多个参数,分别对应列的不同层级:- 第一个
::选择所有行(即2005年至今的所有日期) "Revenue":指定列的第一层为营收指标- 最后一个
::选择列的第二层里的所有公司(AAPL、MSFT、GOOGL、AMZN)
- 第一个
这种写法是Pandas对多层索引的语法简化,等价于用IndexSlice的标准写法:
import pandas as pd idx = pd.IndexSlice display(income_statement_growth.loc[:, idx["Revenue", :]])
FinanceToolkit返回这种多层列索引的结构,是为了方便同时展示多家公司的多个财务指标,用层级区分不同公司的同一指标。
内容的提问来源于stack exchange,提问作者Jermiah smith
相关产品推荐
相关产品推荐

