Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于其他列的数据帧筛选器str列_Python_String_Pandas_Vectorization_Apply - Fatal编程技术网

Python 基于其他列的数据帧筛选器str列

Python 基于其他列的数据帧筛选器str列,python,string,pandas,vectorization,apply,Python,String,Pandas,Vectorization,Apply,我想根据一个字符串列的值是否是另一个字符串列中的值的子字符串来过滤数据帧 根据2岁的帖子,这可以通过如下方式进行: df = pd.DataFrame({'FNAME': ['Max', 'Tobi'], 'LNAME': ['Foo', 'Tobiwan']}) df.loc[ df.apply(lambda row: row.FNAME in row.LNAME, axis=1) ] FNAME LNAME 1 Tobi Tobiwan 我想知道是否有一些内置的矢量化方法

我想根据一个字符串列的值是否是另一个字符串列中的值的子字符串来过滤数据帧

根据2岁的帖子,这可以通过如下方式进行:

df = pd.DataFrame({'FNAME': ['Max', 'Tobi'], 'LNAME': ['Foo', 'Tobiwan']})

df.loc[ df.apply(lambda row: row.FNAME in row.LNAME, axis=1) ]

  FNAME    LNAME
1  Tobi  Tobiwan

我想知道是否有一些内置的矢量化方法可以做到这一点?

使用
replace

df[df.LNAME.replace(regex=r'(?i)'+ df.FNAME,value=True)==True]
  FNAME    LNAME
1  Tobi  Tobiwan

没有一种超高效的方法可以做到这一点,因为
pandas
string方法不是特别快。您可能可以使用列表理解来提高性能:
[x in y for x,y in zip(df.FNAME,df.LNAME)]
使用regex和replace很好地使用了不区分大小写的功能。我不认为我们可以使用value==True,而只能使用True。漂亮的1:)+1