首页 > 解决方案 > 从用户输入中读取python中的excel值

问题描述

我是这个社区的新手,目前正在学习 Python。对于我的第一个小项目,我想要求用户输入(元素周期表中的元素)并打印相应的属性,例如名称、数量和质量。

import pandas as pd
df = pd.read_excel(r'path\excelfile.xlsx')
    
Symbol = input('Input Symbol: ')

try:
    value = df.index[df['Symbol']== Symbol].tolist()[0]
    print(f'properties of {Symbol} are: ')
    print("Element Name: ",df['Atomic_name'][value])
    print("Element Number : ",df['Atomic_number'][value])
    print("Element Mass  : ",df['Atomic_weight'][value], "g/mol")
except IndexError:
    print('Symbol not found')

对于 excel 文件,我使用以下文件:[https://easyupload.io/qrl7yu][1]

坦率地说,仅当您的输入为“H”时它才适用于第一个符号,从而导致以下输出:

Input Symbol: H
properties of H are:
Element Name  :  Hydrogen
Element Number:  1
Element Mass  :  1.01 g/mol

这正是我想要的,但是当我尝试来自同一列“符号”的符号时,它不起作用。我想让它适用于所有符号。如何定义输入的所有符号都来自同一列?我认为这与我定义 value = 的第 7 行有关。

Wixxix [1]:https ://easyupload.io/qrl7yu

标签: pythonpython-3.xexcelinputprinting

解决方案


也许这对你有用:

import pandas as pd

df = pd.read_excel('LoCE.xlsx')

user_input = input('Input Symbol: ')

mask = df.loc[:, 'Symbol'] == user_input

df_mask = df.loc[mask, :]

print(df_mask)

推荐阅读