如何用Python实现Excel中按姓名分组提取对应组单元格数据?
需求与问题
我有一个Excel文件,结构如下:
- 第1行:第2~9列依次为
GROUP A到GROUP H的分组表头 - 第2行及以后:第1列为玩家姓名,每个姓名对应连续4行的分组数据(每组包含4个国家)
需要实现:为每个姓名,将其对应各组的单元格数据添加至对应组的列表中,且通过步长为4的循环遍历所有姓名。
当前实现代码
import openpyxl doc = openpyxl.load_workbook('World Cup Bet Tournament.xlsx') doc_activation = doc.active ############################################ """ 创建最终字典 """ final_dict = {} groups_dict = {} group_list = [] ############################################ for row_1 in range(2, 42): for col_1 in doc_activation.iter_cols(1, 1): name = col_1[row_1].value if name is None: break else: final_dict[name] = groups_dict for row_2 in range(1, 2): for col_2 in doc_activation.iter_cols(2, 9): group = col_2[row_2].value groups_dict[group] = group_list print(final_dict)
当前输出结果
{'1. Mathias L.R': {'GROUP A': [], 'GROUP B': [], 'GROUP C': [], 'GROUP D': [], 'GROUP E': [], 'GROUP F': [], 'GROUP G': [], 'GROUP H': []}, '2. Noah L.R': {'GROUP A': [], 'GROUP B': [], 'GROUP C': [], 'GROUP D': [], 'GROUP E': [], 'GROUP F': [], 'GROUP G': [], 'GROUP H': []}, '3. Jessy P.N': {'GROUP A': [], 'GROUP B': [], 'GROUP C': [], 'GROUP D': [], 'GROUP E': [], 'GROUP F': [], 'GROUP G': [], 'GROUP H': []}, '4. Enzo B.': {'GROUP A': [], 'GROUP B': [], 'GROUP C': [], 'GROUP D': [], 'GROUP E': [], 'GROUP F': [], 'GROUP G': [], 'GROUP H': []}, '5. Savio M.': {'GROUP A': [], 'GROUP B': [], 'GROUP C': [], 'GROUP D': [], 'GROUP E': [], 'GROUP F': [], 'GROUP G': [], 'GROUP H': []}, '6. Jonathan M.': {'GROUP A': [], 'GROUP B': [], 'GROUP C': [], 'GROUP D': [], 'GROUP E': [], 'GROUP F': [], 'GROUP G': [], 'GROUP H': []}, '7. Hans M.': {'GROUP A': [], 'GROUP B': [], 'GROUP C': [], 'GROUP D': [], 'GROUP E': [], 'GROUP F': [], 'GROUP G': [], 'GROUP H': []}, '8. J-E': {'GROUP A': [], 'GROUP B': [], 'GROUP C': [], 'GROUP D': [], 'GROUP E': [], 'GROUP F': [], 'GROUP G': [], 'GROUP H': []}, '9. Schadrac ': {'GROUP A': [], 'GROUP B': [], 'GROUP C': [], 'GROUP D': [], 'GROUP E': [], 'GROUP F': [], 'GROUP G': [], 'GROUP H': []}, '10. Mathieu G.': {'GROUP A': [], 'GROUP B': [], 'GROUP C': [], 'GROUP D': [], 'GROUP E': [], 'GROUP F': [], 'GROUP G': [], 'GROUP H': []}}
待完成内容
目前已构建出以姓名为键、分组字典为值的结构,分组字典中每个组对应一个空列表,需要将对应玩家的国家数据填充到这些列表中。
内容的提问来源于stack exchange,提问作者mrquaternion
相关产品推荐
相关产品推荐

