猿问

Python pandas:使用 contain 和 join 语句从另一个数据框过滤一个数据框

我有一个数据框,如下所示:


df:


Noun    Thumb_count  

ability     19.0

account     3.0

accuracy    155.0

accurate    151.0

activity    163.0

adapt       3.0

app         15.0

gps         13.0

我有另一个数据框,如下所示:


df1:


Review Text                                         Noun        Thumbups    Rating  Review Date

This app is not working properly. GPS is showi...   app           34.0        2 August 3, 2020

This app is not working properly. GPS is showi...   gps           34.0        2 August 3, 2020

This app is not working properly. GPS is showi...   network       34.0        2 August 3, 2020

This app is not working properly. GPS is showi...   connectivity  34.0        2 August 3, 2020

This app is not working properly. GPS is showi...   signal        34.0        2 August 3, 2020

现在我想保留 df1 的唯一行,其中 df1 的名词列与 df 的名词列具有相同的值。这是我的过滤代码:


df1[df1.Noun.str.contains(('|').join(df.Noun.values.tolist()))]

当我运行上面的命令时,它抛出以下错误:


error: nothing to repeat at position 2

我不确定我在哪里犯了错误。谁能指导我哪里做错了?


米脂
浏览 156回答 1
1回答

人到中年有点甜

我想你添加了一个额外的括号,试试:df1[df1.Noun.str.contains('|'.join(df.Noun.tolist()))]您可以使用isin方法:df1[df1.Noun.isin(df.Noun)]
随时随地看视频慕课网APP

相关分类

Python
我要回答