我有一个包含超过 50,000 条推文的 csv 文件,我用 Pandas 将其作为 DataFrame 打开
df = pd.read_csv('dataset_tweets.csv')
我的目标是分析推文的情绪,在继续之前,我需要对推文进行标准化。 我已经为此定义了一个函数,我想将输出添加为数据帧的新列(例如 Text_Normalized)。
尽管如此,如果该行满足某些条件(例如,如果推文不是用英语写的),我可能还需要删除该行。
如何迭代数据帧,将“标准化器”函数应用于文本列,如果不满足特定条件则删除该行,并最终添加一个文本标准化的新列?
最佳答案
假设你有一些“文本规范化”功能:
def normalises_text(text):
....
return normalised_text
您可以将此“按行”应用到“文本”列,然后非常简单地将其放入新列中,如下所示:
df['normalised_text'] = df.text.apply(normalises_text)
要删除不符合某些条件的行,您需要一种在数据框中定义条件的方法。
假设您定义了一个函数来识别文本是否为英语,并返回一个 bool 值:
def is_text_english(text):
....
return text_is_english
然后像以前一样将其放入一列中:
df['text_is_english'] = df.text.apply(is_text_english)
然后,您可以按如下方式过滤数据框:
filtered_df = df[df.text_is_english]
或者,假设您有一个列说明推文的语言,您可以这样做:
filtered_df = df[df.tweet_language == 'EN']
这里的关键点是 apply 函数:
https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html
关于python - 迭代 PANDAS DATAFRAME 时添加、删除、编辑行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45694517/