在迭代PANDAS DATAFRAME时添加,删除,编辑行和列

时间:2017-08-15 14:03:49

标签: python pandas dataframe

我有一个包含超过50,000条推文的csv文件,我用Pandas作为DataFrame打开

df = pd.read_csv('dataset_tweets.csv')

enter image description here

我的目标是分析推文的情绪,在继续之前,我需要规范化推文。 我为此定义了一个函数,我想将输出添加为数据框的新列(例如Text_Normalized)。

然而,如果符合某些条件,我可能还需要删除该行(例如,如果推文不是用英文写的)。

如何遍历数据框,将“规范化程序”功能应用于文本列,如果行不符合某些条件则删除该行,最后添加一个文本规范化的新列?

1 个答案:

答案 0 :(得分:2)

说你有一些文本正常化'功能:

def normalises_text(text):
    ....
    return normalised_text

您可以按行排列'你的文字'列,并将其简单地放在一个新列中,如下所示:

df['normalised_text'] = df.text.apply(normalises_text)

要删除不符合某些条件的行,您需要一种在数据框中定义条件的方法。

假设你定义了一个识别文本是否为英文的函数,并返回一个布尔值:

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']

这里的关键点是应用功能:

https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.apply.html