Python中读取excel文件,转为字典。

部署运行你感兴趣的模型镜像
import pandas as pd
#这里想把文件中的药物和属性存入字典中,先使用panda库的read方法读取文件
df = pd.read_excel('G:/2/DDPddi/data/drug_target.xlsx')
print(df)
#to_dict可以把在python中读取到的文件按照列名存入字典中。
res=df.to_dict(orient = "records");
print(res)

 处理后的结果

 

您可能感兴趣的与本文相关的镜像

Python3.9

Python3.9

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think> 我们已知用户想要了解使用Python读取Excel文档数据并创建字典的方法。根据提供的引用,我们可以整合几种方法。 引用[1]提到了openpyxl库,引用[2]提到了将两列数据转换为字典,引用[3]提到了xlrd模块,引用[4]提到了将字典写入Excel(但用户需求是读取并创建字典,所以这个引用可能不直接相关,但可以作为反向操作的参考)。 因此,我们将重点放在openpyxl和xlrd这两个库上。 步骤: 1. 安装相应的库:openpyxl用于处理.xlsx格式,xlrd用于读取.xls格式(注意:xlrd新版本不支持xlsx,所以如果需要读取xlsx,建议使用openpyxl或xlrd的旧版本,但更推荐openpyxl)。 2. 读取文件,获取工作簿和工作表。 3. 遍历行,将指定的两列(通常为键和值)提取出来组字典。 注意:用户的需求是读取Excel并创建字典,所以我们需要指定哪两列作为键和值。通常,我们假设第一列为键,第二列为值(或者根据实际列来定)。用户可能需要根据实际情况调整列索引。 我们将提供两种方法: 方法一:使用openpyxl(适用于.xlsx文件) 方法二:使用xlrd(适用于.xls文件) 此外,我们还将考虑可能的需求:如何处理多行、重复键的处理(覆盖还是合并)等,但基本方法会使用覆盖(后面的重复键覆盖前面的)。 下面分别给出代码示例: </think> 以下是使用Python读取Excel文档并创建字典的几种方法,结合了站内引用的实用技巧: ### 方法一:使用openpyxl库(推荐.xlsx格式) ```python from openpyxl import load_workbook def excel_to_dict(file_path, key_col, value_col): """将Excel两列数据转为字典""" wb = load_workbook(filename=file_path) sheet = wb.active data_dict = {} for row in range(2, sheet.max_row + 1): # 从第2行开始跳过表头 key = sheet.cell(row=row, column=key_col).value value = sheet.cell(row=row, column=value_col).value if key: # 跳过空键 data_dict[key] = value return data_dict # 使用示例 file = "data.xlsx" result = excel_to_dict(file, key_col=1, value_col=2) # A列为键,B列为值 print(result) ``` ### 方法二:使用xlrd库(兼容旧版.xls格式) ```python import xlrd def excel_to_dict_xls(file_path): """读取.xls文件字典""" workbook = xlrd.open_workbook(file_path) sheet = workbook.sheet_by_index(0) data_dict = {} for row in range(1, sheet.nrows): # 跳过标题行 row_data = sheet.row_values(row) if row_data[0]: # 确保键不为空 data_dict[row_data[0]] = row_data[1] # 第1列作键,第2列作值 return data_dict # 使用示例 result = excel_to_dict_xls("old_data.xls") ``` ### 关键参数说明: 1. **键值列设置**: - `key_col`:作为字典键的列序号(A列=1, B列=2) - `value_col`:作为字典值的列序号 2. **数据类型处理**: - 日期会返回为`datetime`对象 - 数字保留原始类型(整型/浮点型) 3. **空值处理**: - 默认跳过空键行 - 空值单元格返回`None` ### 注意事项: 1. 安装依赖库: ```bash pip install openpyxl # 新格式.xlsx pip install xlrd==1.2.0 # 旧格式.xls(注意2.0+不支持xlsx) ``` 2. 重复键处理:后出现的键值会覆盖先前的值 3. 性能优化:大文件可使用`read_only=True`模式 ```python wb = load_workbook(filename=file, read_only=True) ``` > 示例输入(Excel): > | 学号 | 姓名 | > |------|--------| > | 1001 | 张三 | > | 1002 | 李四 | > > 输出字典:`{1001: '张三', 1002: '李四'}`[^1][^2][^3]
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值