2017-08-05 19 views
2

パンダのような、DataFramestartswith選択することができます:私は、しかし"反転" STARTSWITHのデータフレームの選択

Name 
Ali 
Alice 
Alicia 
Alistair 
... 

のようなものになるかもしれない...

query = "Ali" 
people[people.Name.str.startswith(query)] 

inputDataFrameの値で始まる行を見つけるために、選択範囲の入力を逆にします。これは、例えば名前とAliを選択するかもしれない

query = "Ali" 
people[query.startswith(people.Name)] 

:よう

何か。

このコードは明らかに機能しません。これはこの例では分かりにくいようですが、データで達成したいことです。

私はこれをどのように達成できたか知っていますか?

+0

何を得る予定ですか?私はここで少し混乱している。 –

+1

'people [people.FullName.apply(lambda s:input_str.startswith(s))]'?また、 'input'は組み込み関数なので' input'を 'input_str'に変更しました。 – Abdou

+0

ご協力いただきありがとうございます。まもなくご質問が更新されます – aaaidan

答えて

4

調製

import pandas as pd 

people = pd.DataFrame() 
people["FullName"] = ["Alice Cooper", "Ali","Aloy"] 

input_ = "Alice" 

代替1:Boolean-indexing

people[[input_.startswith(i) for i in people.FullName]] # passes [False, True, False] 

千ループ、3の最もよい:ループ当たり937マイクロ秒


(おかげ@Abdou)が2オルタナティブ:3の最高.apply() and lambda

people[people.FullName.apply(lambda s: input_.startswith(s))] 

1000を用いシリーズの値に関数を呼び出しループ:ループ当たり1.38ミリ


出力:

FullName 
1 Ali 
関連する問題