我有一个小型的SQLite数据库,里面有关于导体的数据。该程序打印名称和Pandas ID的列表,接受该ID的用户输入,然后打印有关所选导体的所有信息。
我试图弄清楚如何从指定的列中选择特定的项--稍后,我将允许输入,但现在,我只是在print()中手动指定,以简化自己的故障排除。
程序一直工作到合并的条件打印行。我怀疑将字符串转换到int比它所需要的更困难;如果有更好的方法来选择条目(例如,只匹配db中名称的名称),我是开放的。
with lite.connect(db_path) as db:
df = pd.read_sql_query('SELECT * FROM cond', conn)
print('What conductor are you analyzing?')
try:
print(pd.read_sql_query('SELECT name FROM cond', conn)) # List names and Pandas IDs
getCond = int(input('\nEnter the ID #: ')) # cast string to int to allow .iloc
printSel = df.iloc[getCond]
print()
print(printSel)
print(df[(df['Amps']) & (df.iloc == getCond)])
finally:
if conn:
conn.close()
编辑:在选择项后引发的错误是
"TypeError:不能将dtyped对象数组与bool类型的标量进行比较“
我不知所措,因为我认为它是在说&操作符被比作某种东西,而不是用它来打印任何遇到“这个和那个”的东西。
发布于 2016-10-05 14:26:33
如果我正确理解,“getCond”将是要选择的行的索引,而'Amps‘是列。我认为您可以这样做,以返回'Amps‘列的'getCond’行。
df.locgetCond,“Amps”
https://stackoverflow.com/questions/39876415
复制相似问题