我是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
答案 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