2016-10-05 1 views
0

전도체에 대한 데이터가있는 작은 SQLite DB가 있습니다. 이 프로그램은 이름 목록과 판다 ID를 인쇄하고 그 ID에 대한 사용자 입력을 승인 한 다음 선택한 지휘자에 ​​대한 모든 정보를 인쇄합니다.iloc 및 사용자 입력을 기반으로 한 팬더에서 데이터 가져 오기

지정한 열에서 특정 항목을 선택하는 방법을 알아 내려고합니다. 나중에 입력을 허용 하겠지만, 지금은 직접 문제 해결을 단순화하기 위해 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() 

EDIT :

난에있어 "타입의 스칼라 [BOOL]와 dtyped [목적] 배열을 비교할 수없는 형식 오류"항목을 선택한 후 던져 오류가

인 왜냐하면 나는 "이것과 그 것"을 만족시키는 것이 무엇이든 인쇄물로 사용하는 것이 아니라, & 연산자가 뭔가와 비교되고 있다고 생각하기 때문입니다.

답변

1

올바르게 이해하면 'getCond'는 선택하려는 행의 색인이되고 'Amps'는 열입니다. 제 생각에는 '암페어'열의 'getCond'행을 반환하기 위해이 작업을 수행 할 수 있다고 생각합니다.

df.loc [getCond, 'Amps']

+0

예, 정확하게! 그랬지, 고마워. –

관련 문제