首先,请原谅我糟糕的词汇,我还在为正确的术语而挣扎,并且刚刚发现我已经创建了一个多索引 Dataframe ,我正在努力学习如何操作它。
多索引 Dataframe 有30行和546列,看起来像下面的放大版本:
| | A类|||乙|||C级|||D级|||
| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------| - ------|
| | aa| bb|立方厘米|aa| bb|立方厘米|aa| bb|立方厘米|aa| bb|立方厘米|
| 日期|||||||||||||
| 2023年1月2日|1个|二十四|六个|三个|第二章|七|三个|十个|十二|五个|九|二十一|
| 2023年1月3日|1个|二十三|七|三个|四个|六个|三个|九|十三|六个|十个|二十二|
| 2023年1月4日|第二章|二十二|八个|四个|六个|七|三个|九|十二|八个|十四|二十四|
| 2023年1月5日|三个|二十一|十个|三个|八个|六个|四个|八个|十一|十个|十二|二十一|
该索引是一个时间戳日期,并且顶级(0级?)列索引A、B、C、D等每个都具有相同的91个二级(1级?)成员:aa、bb、cc等
因为总共有546列,91个"1级"列,所以必须有6个"0级"列。我看不到它们,因为表太大了,只能显示第一个和最后一个。
事实上,这是一个从雅虎获得的股票数据表,其中A、B、C是(6)个财务值,如收盘价、成交量、高点等,aa、bb、cc等是(91)个公司代码。
我想学习如何执行以下操作:
1.如何提取"0级"列名的列表。
1.如何提取"级别1"列名的列表。
1.对于1行(日期),提取所有"0级"和一个"1级"指标的数据。(例如,一家公司在一天的所有财务数据)。
1.对于1行(日期),一个"0级"包含所有"0级"数据。例如,所有公司在一天内的数量数据。
我一直在尝试这样的事情:
df.loc[:,(['A','B'],['aa,'bb', 'cc'])]
df.loc['2023-01-02', :]
这工作,但我不能排序括号和冒号的权利,做上述的东西。
另外,
df.loc[:,(['A','D'],['aa,'cc','ff'])]
以及
df.loc['2023-01-05':,([A,C],[aa,dd])]
工作,但是
df.loc['2023-01-05',([A:],[aa,dd])]
以及
df.loc['2023-01-05',(A:,[aa,dd])]
给出了无效的语法。有人能解释一下吗,或者给我指一个教程,这将有助于级别定义和圆/方括号和冒号?
谢谢。
1条答案
按热度按时间sgtfey8w1#
要提取 level 列名的列表,可以使用
get_level_values
:对于3和4,使用
pd.IndexSlice
比较方便用途: