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 使用lamda函数检查URL中是否存在列中的值_Python_String_Pandas_Dataframe_Lambda - Fatal编程技术网

Python 使用lamda函数检查URL中是否存在列中的值

Python 使用lamda函数检查URL中是否存在列中的值,python,string,pandas,dataframe,lambda,Python,String,Pandas,Dataframe,Lambda,我有一个数据框,它有两列。一个是URL,另一个是用户名 +----------------------------------------+---------------+ | URL | Username | +----------------------------------------+---------------+ | johnsmith/stackoverflow.com/?=abc | jo

我有一个数据框,它有两列。一个是URL,另一个是用户名

+----------------------------------------+---------------+
|                  URL                   |   Username    |
+----------------------------------------+---------------+
| johnsmith/stackoverflow.com/?=abc      | johnsmith     |
| michealrod/stackoverflow.com/?=payment | michealrod    |
| stephaniejean/stackoverflow.com/?=abc  | stephaniejean |
+----------------------------------------+---------------+
我想编写一个lambda函数来检查URL中是否存在用户名。我正试图写这样的东西,但遇到了一个错误

df['exists'] = df.apply(lambda x : df['Username'] in df['URL']).any()

因此,基本上,如果用户名是URL的一部分,我会尝试获取TRUE,如果用户名不存在于URL中,则获取False。

假设您的数据是干净的,列表理解相对有效:

df['exists'] = [x in y for x, y in zip(df['Username'], df['URL'])]
您可以使用
apply
,但性能较差:

df['exists'] = df.apply(lambda row: row['Username'] in row['URL'], axis=1)

使用
numpy
core.defchararray.find检查

df['exists']=np.core.defchararray.find(df.URL.values.astype(str),df.Username.values)!=-1