我有一個像這樣的熊貓資料框
name url
pau lola www.paulola.com
pou gine www.cheeseham.com
pete raj www.pataraj.com
我想檢查列名中的任何字串是否在列 url 中(所以忽略空格)。所以像這樣
name url result
pau lola www.paulola.com True
pou gine www.cheeseham.com False
pete raj www.pataraj.com True
有什么辦法嗎?我嘗試過使用這個 lambda 函式,但只有在同時包含兩者時才有效
name url namewospaces
pau lola www.paulola.com paulola
pou gine www.cheeseham.com pougine
pete raj www.pataraj.com peteraj
df['result'] = df.apply(lambda x: str(x.namewospaces) in str(x.url), axis=1)
name url namewospaces result
pau lola www.paulola.com paulola True
pou gine www.cheeseham.com pougine False
pete raj www.pataraj.com peteraj False
謝謝你們 :)
uj5u.com熱心網友回復:
split將名稱轉換為子字串,并使用串列推導any來獲取 True 是任何字串匹配:
df['result'] = [any(s in url for s in lst)
for lst, url in zip(df['name'].str.split(), df['url'])]
(較慢的)等價物apply是:
df['result'] = df.apply(lambda x: any(s in x['url']
for s in x['name'].split()), axis=1)
輸出:
name url result
0 pau lola www.paulola.com True
1 pou gine www.cheeseham.com False
2 pete raj www.pataraj.com True
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/459194.html
標籤:Python python-3.x 熊猫 细绳 包含
