Python使用Pandas读取Excel指定列后如何逐行遍历存入字典
实现方案
你现有代码先修正两个容易报错的细节:
- Python大小写敏感,你定义的
Workbook变量和后续调用的workBook名称不一致,会触发变量不存在的报错,建议统一命名。 - 提取单列数据不需要额外嵌套
pd.DataFrame(),直接用方括号按列名取值即可。
修正后的基础代码:
import pandas as pd workbook_path = "你的Excel文件实际存储路径" eRead = pd.read_excel(workbook_path, sheet_name='Sheet1') # 提取IP列,得到可直接遍历的Series对象 eIP = eRead['IP']
单列遍历实现(适配你当前只取IP列的场景)
直接调用列对象的items()方法遍历,每轮循环可以拿到行索引和对应的IP值,直接组装字典传入你的备份函数即可:
for row_index, ip_value in eIP.items(): # 组装传入函数的参数字典 backup_param = { "target_ip": ip_value # 后续如果要加其他参数直接在字典里追加键值对即可 } # 调用你自己写的备份函数 your_backup_function(backup_param)
多列遍历实现(适配后续需要读取多字段的场景)
如果后续你需要同时读取IP、账号、备份路径等多列信息,直接用iterrows()逐行遍历原DataFrame即可,不需要单独提取列:
for row_index, row_data in eRead.iterrows(): # 按列名提取当前行对应的值 current_ip = row_data['IP'] # 示例:如果Excel里还有username、backup_dir列,直接按列名取值即可 # current_user = row_data['username'] # current_backup_dir = row_data['backup_dir'] # 组装参数字典 backup_param = { "target_ip": current_ip, # "username": current_user, # "backup_dir": current_backup_dir } # 传入备份函数执行 your_backup_function(backup_param)
初学者注意事项
- 不要用
for i in range(len(eIP))搭配eIP.iloc[i]的写法遍历,这种写法执行效率低,用Pandas自带的迭代方法写法更简洁规范。 - 如果循环内组装的字典是单条数据专属,建议在循环内部初始化字典,避免上一轮循环的残留值污染下一轮的参数。
- 执行
print(eIP)能正常输出数据说明Excel读取逻辑是正常的,遍历逻辑直接套上面的模板即可。
内容的提问来源于stack exchange,提问作者maboom89
相关产品推荐
相关产品推荐

