我正在做作业,但是在使用Pandas时遇到了麻烦(发现它与我以前习惯的MATLAB非常不同)。 我有一个名为“ main_DF”的数据框,该数据框具有多个列(或系列),这些列之一称为“文本消息”。我想将每一行的文本消息标记为单个单词,然后将这些单个单词的列表放在另一个称为“文本消息令牌”的列中。 这是我目前所拥有的:
main_DF = pd.DataFrame(columns=['text-message', 'Label']) # creating empty dataframe
# filling with data
main_DF = main_DF.append({'text-message': "I am happy", 'Label':"happy"}, ignore_index=True)
main_DF = main_DF.append({'text-message': "I am sad", 'Label':"sad"}, ignore_index=True)
# print
print(main_DF)
# Tokenizing text-message
tokenize = CountVectorizer().build_tokenizer()
# Add tokenized message to main_DF
main_DF['text-message-tokens'] = tokenize(main_DF['text-message'][0]) # tokenize first row
main_DF['text-message-tokens'] = tokenize(main_DF['text-message'][1]) # tokenize second row
# print
print(main_DF)
这将导致以下结果
答案 0 :(得分:2)
您可以使用apply对每条短信应用标记化:
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
main_DF = pd.DataFrame(columns=['text-message', 'Label']) # creating empty dataframe
# filling with data
main_DF = main_DF.append({'text-message': "I am happy", 'Label':"happy"}, ignore_index=True)
main_DF = main_DF.append({'text-message': "I am sad", 'Label':"sad"}, ignore_index=True)
# print
print(main_DF)
# Tokenizing text-message
tokenize = CountVectorizer().build_tokenizer()
# Add tokenized message to main_DF
main_DF["text-message-tokens"] = main_DF["text-message"].apply(tokenize)
# print
print(main_DF)
输出
main_DF
text-message Label text-message-tokens
0 I am happy happy [am, happy]
1 I am sad sad [am, sad]