如何使用Pandas读取带合并单元格的Excel并生成指定结构字典
Excel合并单元格转指定格式字典的实现方法
Excel中的合并单元格读取到pandas后,仅合并区域的首个单元格会保留原值,其余位置默认填充空值,按以下步骤操作即可得到你需要的{A:[(B1,C1),(B2,C2),(B3,C3)]}格式字典:
第一步:修正Excel读取规则
你当前的df.info()输出显示列名异常、A列非空计数为0,是因为读取文件时没有正确识别表头,读取时需设置header=0将第一行的A、B、C识别为列名:
import pandas as pd df = pd.read_excel("你的文件路径.xlsx", header=0)
第二步:补全A列合并单元格的值
用向前填充的方式补全A列的空值,让合并单元格对应的所有行都能拿到相同的A列标识:
# 如果A列空值是NaN,直接向前填充 df["A"] = df["A"].ffill() # 如果你表格里A列空的位置是空白字符串,先用这行替换再填充 # df["A"] = df["A"].replace("", pd.NA).ffill()
第三步:分组聚合生成目标字典
按A列分组后,将每组对应的B、C列值打包为元组列表,最后转为字典即可:
result = df.groupby("A")[["B", "C"]].apply(lambda x: list(map(tuple, x.values))).to_dict()
该实现思路与stackoverflow用户jezrael提供的方案一致,可直接适配你的需求。
内容的提问来源于stack exchange,提问作者Rotomegax
相关产品推荐
相关产品推荐

