如何将定义的函数应用于多行?
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 的答案。
我想将定义的函数“标记化”应用于数据集“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 的答案。