首页 > 解决方案 > 有没有更有效的方法来迭代数据框?

问题描述

books_over10['Keywords'] = ""
    r = Rake() # Uses stopwords for english from NLTK, and all puntuation characters.
    for index, row in books_over10.iterrows():
        a=r.extract_keywords_from_text(row['bookTitle']) 
        c=r.get_ranked_phrases() # To get keyword phrases ranked with scores highest to lowest.
        books_over10.at[index, 'Keywords'] = c
    books_over10.head()

我正在使用上面的代码,以便处理所有行并从 bookTitle 列中的每一行中提取关键字,然后将它们作为列表插入到同一行上名为“关键字”的新列中。问题是是否有一种更有效的方法来做到这一点,而无需遍历所有行,因为这需要很多时间。任何帮助,将不胜感激。提前致谢 !

长明解决方案:

def extractor(row):
    a=r.extract_keywords_from_text(row)
    return r.get_ranked_phrases() # To get keyword phrases ranked with scores highest to lowest.

r = Rake() # Uses stopwords for english from NLTK, and all puntuation characters.
books_over10['Keywords'] = books_over10['bookTitle'].map(lambda row : extractor(row))

标签: pythonpandasdataframenltk

解决方案


尝试查看地图。不确定您使用的是什么 Rake,并且您对其进行编码的方式有点令人困惑,但一般语法是这样的。

books_over10['Keywords'] = books_over10['bookTitle'].map(lambda a: FUNCTION(a))

推荐阅读