比较两个Pandas数据帧列中的常见字符串

5

我有一个如下的 pandas 数据框:

coname1        coname2
Apple          [Microsoft, Apple, Google]
Yahoo          [American Express, Jet Blue]
Gap Inc       [American Eagle, Walmart, Gap Inc]

我希望创建一个新列,用于标记coname1中的字符串是否包含在conames中。因此,从上面的示例中,数据框现在将是:
coname1        coname2                               isin
Apple          [Microsoft, Apple, Google]            True
Yahoo          [American Express, Jet Blue]          False
Gap Inc       [American Eagle, Walmart, Gap Inc]     True

你的问题是什么(例如带问号的句子)?你只需说明你想要什么。你遇到了什么问题吗?你正在寻找雇佣程序员吗?是否遇到错误问题(如果有,是哪一个)?这是一个程序员的网站,所以包含一些代码基本上是必须的。 - Anthon
1个回答

6

设置框架:

df =pd.DataFrame({'coname1':['Apple','Yahoo','Gap Inc'],
          'coname2':[['Microsoft', 'Apple', 'Google'],['American Express', 'Jet Blue'],
                     ['American Eagle', 'Walmart', 'Gap Inc']]})

试试这个:

df['isin'] =df.apply(lambda row: row['coname1'] in row['coname2'],axis=1)

这个代码可以运行,但是对于较大的数据框来说非常慢。根据回答以及我在这篇文章中的评论,使用列表推导式会更快:https://dev59.com/xFcP5IYBdhLWcg3wxMw5 - elPastor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接