2016-04-06 15 views
0

値のリストに基づいて行を選択する方法があるかどうかを知りたいと思います。つまり、リストからの値に基づいてデータフレームからサブセットを作成します。特定の値リストに基づいて、パンダのデータフレームのサブセットを選択する

さらに説明すると、私はChris Albonからのデータフレームの例を取り上げます。私は、次のデータフレームがあるとします。

raw_data = { 
     'subject_id': ['1', '2', '3', '4', '5'], 
     'first_name': ['Alex', 'Amy', 'Allen', 'Alice', 'Ayoung'], 
     'last_name': ['Anderson', 'Ackerman', 'Ali', 'Aoni', 'Atiches']} 
df_a = pd.DataFrame(raw_data, columns = ['subject_id', 'first_name', 'last_name']) 
df_a 

を私は下のリストから「FIRST_NAME」に基づいて行を選択したい:

fnames = ['Alex', 'Alice', 'Ayoung'] 

私がいつも行っていること以上の実行ループにあります

for fn in fnames: 
    df_name = df_a[(df_a['first_name'] == fn 

を入力し、各行を新しいデータフレームに追加/連結して、私が望むものを作成します。リストからの値に基づいてデータフレームをサブセット化するより良い方法はありますか?

+1

を' – EdChum

+0

[OK]を、ありがとう。質問を閉じてください。私はどのようにするのか分からない? – Rohit

+0

ありがとうございます。詐欺師のために申し訳ありません。検索するものを正確には知らなかった。 – Rohit

答えて

0

isinメソッドを使用します[。df_a [ 'first_nameの'] ISIN(fnames)]あなたは `df_aをしたい、基本的には以上のデュープを参照してください、この質問は閉鎖されるべき

df_name = df_a[(df_a['first_name'].isin(fn) 
+0

だから、私はまだループする必要があると言っていますか? – Rohit

+0

あなたの解決策を試しましたが、エラーが発生します:KeyError: "['Alex' 'Amy' 'Allen' 'Alice' 'Ayoung' – Rohit

関連する問題