在字符串列表中查找字符串并在pandas中创建新列

时间:2017-07-17 19:41:09

标签: python pandas

我是Python的新手,并尝试在此处解决性能问题。 我有2个数据帧

Dataframe 1

col1        col2
holiday     party
party       party
bagel       snack
fruit       snack

数据框2:

col1                            col2
bagel wednesday                 snack               
coffee for party                snack
holiday party                   party

数据框1有2列。我需要在DataFrame2.col1中查找DataFrame1.col1并在DataFrame2.col2中使用DataFrame1.col2值创建一个新列 目前,我正在使用循环来实现这一点,并且需要很长时间。我正在寻找一种有效的方法来做到这一点。另外,如果我得到多个匹配,我应该总是使用从DataFrame1找到的第一个匹配。例如,"咖啡派对"有2场比赛来自DF1,小吃和派对,在这种情况下"零食"应该从DF1.col2中选择。

由于 RL

1 个答案:

答案 0 :(得分:0)

我认为你必须循环一周的日子(但不是df2的所有行(好吧,df.col.str.contains会以优化的方式为你做内循环)。)

for item in df1.col2.unique():
    for idx, row in df1[df1.col2==item].iterrows():
        df2.loc[df2.col1.str.contains(row.col1), 'col3'] = item