2017-06-12 3 views
0

私は作成したCSVファイルにPandasを使用してアクセスしています。私はdata.name.tolist()関数を使ってリストを作成しました。これは "ID"と呼ばれ、ユーザーのすべてのID番号を格納しています(現在これらのIDは1-6ですが、後に5桁の数字になります)。入力されたID番号をIDのリストと比較し、入力されたIDがリストにあるかどうかに基づいて出力を提供することです。そうするための最良の方法は何でしょうか?入力値をPandasによって作成された列リストと比較する

乾杯

import csv 
    import pandas 

    colnames = ['name', 'ID', 'carPass', 'cardLost'] 
    data = pandas.read_csv('info.csv', names = colnames) 
    IDs = data.ID.tolist() 

    #Asks the user what their ID Number is 
    entry = int(input("What is your id number?")).strip() 

    if entry isin IDs: 
     print("YES") 
    else: 
     print("NO") 

編集:CSVサンプル

name,ID,carPass,cardLost 
    James,1,yes,no 
    Daniel,2,no,no 
    Georgia,3,yes,yes 
    Norman,4,no,no 
    Tom,5,no,no 
    Sam,6,yes,no 

関連データのみの瞬間にIDとcarPass値です。

+0

ブール検索を行います。 'entry'を定義すると、' print(data [data ["ID"] == entry]) 'となります。 –

+0

私はEntry文を指定されたコードに置き換えて、エラーを受け取りました:Empty DataFrame 列:[name、ID、carPass、cardLost] Index:[] Help? –

+0

'info.csv'ファイルの小さなサンプルを提供できますか? –

答えて

2

入力ファイルinfo.csv

name,ID,carPass,cardLost 
dog,34,yes,yes 
cat,78,yes,no 
bird,45,no,no 
lizard,84,no,yes 

これは、ID番号を持つエントリを検索するブールの十分なはずです。

import pandas as pd 

df = pd.read_csv("info.csv") 
entry = int(input("What is your id number? ")) 

if entry in df["ID"].tolist(): 
    print(df[df["ID"] == entry]) 
else: 
    print("No entries with that ID number.") 
関連する問題