Pandas:如果substring在string中,则返回相邻单元格的值

时间:2016-02-25 01:53:46

标签: python excel loops csv pandas

我目前有以下工作代码:

for i,gram in enumerate(df['Unigram']):
    for j,word in enumerate(df1['Keyword']):
      if df.ix[i,'Unigram'] in df1.loc[j,'Keyword']:
        df.ix[i,'Cost'] += df1.ix[j,'Cost']

但是大型数据集需要很长时间。有没有更有效的方法来解决这个问题?我听说Pandas DataFrames不喜欢循环,但我不确定最好的方法。一个有效的解决方案可以解决多个匹配问题。

提前致谢!

2 个答案:

答案 0 :(得分:0)

df['Unigram']df1['Keyword']系列对象?然后,您应该使用enumerate()替换iteritems()来电。示例:代替enumerate(df['Unigram'])使用df['Unigram'].iteritems()。如果它们是DataFrame对象,则可以使用iterrows()。

答案 1 :(得分:0)

尝试使用owin

as.mask