Python读取Excel元素周期表仅H符号匹配成功如何修复
问题解决方案
- 核心问题是元素符号匹配时存在格式不一致的问题:Excel存储的Symbol列大概率存在首尾空白字符,或输入/存储的大小写不统一,导致全等判断
==匹配失败 - 原有取索引再取值的逻辑也可以进一步优化,降低出错概率
修改步骤
- 读取Excel后先清洗Symbol列,统一格式
- 对用户输入做同步的格式处理
- 优化匹配逻辑,直接筛选对应行
完整修改后代码
import pandas as pd df = pd.read_excel(r'path\excelfile.xlsx') # 清洗Symbol列:去除首尾空白、统一转大写 df['Symbol'] = df['Symbol'].str.strip().str.upper() # 对用户输入做同样的清洗处理,和数据表格式对齐 Symbol = input('Input Symbol: ').strip().upper() try: # 直接筛选匹配行,无需先查找索引再取值 matched_row = df[df['Symbol'] == Symbol].iloc[0] print(f'properties of {Symbol} are: ') print("Element Name: ", matched_row['Atomic_name']) print("Element Number : ", matched_row['Atomic_number']) print("Element Mass : ", matched_row['Atomic_weight'], "g/mol") except IndexError: print('Symbol not found')
修改说明
- 增加了字符串清洗步骤,彻底解决了看不见的空白字符、大小写差异导致的匹配失败问题
- 优化了取值逻辑,直接从筛选后的行中取对应字段,避免索引错位导致的取值错误
内容的提问来源于stack exchange,提问作者Wixxix
相关产品推荐
相关产品推荐

