Python Pandas 多重索引。计算给定多索引主标题的多索引子标题的数量

问题描述 投票:0回答:1

我需要计算给定多索引主标题的多索引子标题的数量。

这个问题与我之前的问题相关:read_csv:多个标题行。单个标题行中有重复项,但当考虑两个标题行时,没有列重复 如果该链接未通过,则 stackoverflow 上的搜索词将为:“read_csv:多个标题行。单个标题行内有重复项,但当考虑两个标题行时,不会出现重复的列”

使用相同的示例 csv 文件:

示例 csv 文件:

Exp,2023-09-22,2023-09-22,2023-09-29,2023-10-06,2023-10-13  
Code,A,B,A,A,A  
Item,,,,,  
260,1,8,17,31,42  
270,2,9,18,32,43  
280,3,10,19,33,44  
290,4,11,20,34,45  
300,5,12,21,35,46  

并将 csv 读入数据框,如下所示:

给出输出:

print(df)

Exp  2023-09-22     2023-09-29 2023-10-06 2023-10-13
Code          A   B          A          A          A
Item                                                
270           2   9         18         32         43
280           3  10         19         33         44
290           4  11         20         34         45
300           5  12         21         35         46


问题:如何计算给定 Exp 标题的“Code”条目数? 例如: Exp '2023-09-22' 列出了多少个代码条目?答案:2(它们是“A”和“B”) Exp '2023-10-13' 列出了多少个代码条目?答案:1

非常感谢任何编码此查询的帮助。

我尝试过 len(df.columns[col_idx]) 和其他迭代的各种组合,但没有任何效果。至于可接受的解决方案方法,我会使用一个计数(例如 int 2 或 int 1)运行,或者使用随后可以计数的名称或值(或它们被认为是的任何内容)的列表。在所有情况下,代码将由“A”或“B”组成,或同时由[“A”和“B”]组成。

python pandas multi-index
1个回答
0
投票

代码

df.droplevel(level=-1, axis=1).columns.to_frame().groupby(level=0).size()

输出:

Exp
2023-09-22      2
2023-09-29      1
2023-10-06      1
2023-10-13      1
© www.soinside.com 2019 - 2024. All rights reserved.