2017-08-05 66 views
2

大熊貓允許在DataFramestartswith選擇,如:「反轉」 一startswith數據幀在大熊貓選擇

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

...這可能會導致類似

Name 
Ali 
Alice 
Alicia 
Alistair 
... 

不過,我想比如反轉選擇中的輸入,找到inputDataFrame中的值開頭的行。

喜歡的東西:

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

這可能會選擇名稱和Ali例如。

這段代碼顯然不起作用,對於這個例子來說這看起來不是一個明智的做法,但這是我想用我的數據實現的。

任何人都知道我能做到這一點嗎?

+0

你期望得到什麼?我在這裏有點困惑。 –

+1

'people [people.FullName.apply(lambda s:input_str.startswith(s))]'?此外,我將'input'重命名爲'input_str',因爲'input'是一個內建函數。 – 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] 

1000次循環,最好的3:每次循環


微秒

備選2 (感謝@Abdou):每次循環


1.38 MS:使用.apply() and lambda

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

1000循環,最好的3調用在系列的值的功能輸出:

FullName 
1 Ali