如何将定义的函数应用于多行?

How to apply a defined function to many rows?

我想将定义的函数“标记化”应用于数据集“reviews_english”的“Review Gast”列的所有行。我怎样才能做到这一点?目前我只能将它应用于一行。谢谢! :)


def tokenization(text):
    # Normalize
    text = normalize(text)

    # Remove Punctuation
    text = remove_punctuation(text)

    # Tokenize
    tokens = text.split()

    # Remove Stopwords
    tokens = remove_stopwords(tokens)

    # Apply Bag-of-Words (set of tokens)
    bow = set(tokens)

    return bow

clean_reviews_english =tokenization(reviews_english["Review Gast"][0])
print(clean_reviews_english)

使用列表理解

clean_reviews_english = tokenization(review for review in reviews_english["Review Gast"])

map:

clean_reviews_english = map(tokenization, reviews_english["Review Gast"])

假设您使用的是 pandas 数据框,如果您想将函数应用于列,请使用 df["col"].apply(func)

在此示例中,要将结果添加为新列,请使用:

reviews_english["tokenized"] = reviews_english["Review Gast"].astype(str).apply(tokenization)

如果您没有使用 pandas 数据框,请使用 Corralien 的答案。