如何使用Python处理CSV文件,根据用户输入姓名查询对应邮箱
CSV姓名匹配查询邮箱功能实现方案
原代码问题点
- 无需额外创建空DataFrame存储用户输入,直接接收字符串即可
- 直接遍历pandas的DataFrame默认返回的是列名,无法遍历每行内容完成匹配
- 匹配逻辑未关联CSV中的Name列和用户输入内容,无法得到正确结果
可运行实现代码
import pandas as pd # 读取目标CSV文件 data = pd.read_csv(r'C:\Users\samer\Downloads\cvs\mail list.csv') # 接收用户输入并去除前后空格,避免匹配异常 input_name = input("请输入姓名:").strip() # 布尔索引筛选匹配姓名的行 match_rows = data[data['Name'] == input_name] if not match_rows.empty: # 输出第一个匹配结果的邮箱 print(match_rows['Email'].iloc[0]) else: print(f"未找到姓名为【{input_name}】的对应邮箱")
可选优化项
- 如需忽略大小写匹配,可以将筛选条件修改为
data['Name'].str.lower() == input_name.lower() - 如需支持重名场景输出所有匹配邮箱,可以遍历
match_rows['Email']逐个输出 - 如需支持模糊匹配,可以使用
str.contains()方法替换等值匹配逻辑
内容的提问来源于stack exchange,提问作者Samer MALAS
相关产品推荐
相关产品推荐

