如何从多行列xls文件生成外层为列名、内层为行值的嵌套字典
调整后的完整代码
import pandas as pd # 读取Excel所有工作表,header=1表示表头在第2行,和你原有逻辑一致 epitope_dicty = pd.read_excel('file.xlsx', engine='openpyxl', sheet_name=None, header=1) dicty_of = {} for sheet_name, sheet_df in epitope_dicty.items(): # 清理首列为空的行,将首列设为索引 processed_df = sheet_df.dropna(subset=[sheet_df.columns[0]]).set_index(sheet_df.columns[0]) # 如果需要数值转为字符串格式,取消注释下一行即可 # processed_df = processed_df.astype(str) # 直接转换为目标嵌套字典结构 dicty_of[sheet_name] = processed_df.to_dict()
结果说明
- 最终
dicty_of是总字典,键为工作表名称,值就是你要求的嵌套字典结构:外层键为除首列外的列名,内层字典键为首列的取值,值为对应单元格的内容 - 如果你只需要处理单个工作表,直接取对应工作表的转换结果即可,比如
dicty_of['你要的工作表名']就是你示例给出的输出格式
如果你Excel里有重复列名(比如示例里的两个Col_4),pandas读取后会自动重命名为
Col_4、Col_4.1避免冲突,如果你要保留原始重复命名可以在读取后手动修改列名。
内容的提问来源于stack exchange,提问作者lavo_hos
相关产品推荐
相关产品推荐

