2017-08-05 68 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