Python 在迭代数据帧时添加、删除、编辑行和列
我有一个csv文件,上面有超过50000条推文,我用Pandas打开它作为数据帧Python 在迭代数据帧时添加、删除、编辑行和列,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个csv文件,上面有超过50000条推文,我用Pandas打开它作为数据帧 df = pd.read_csv('dataset_tweets.csv') 我的目标是分析tweet的情绪,在继续之前,我需要将tweet正常化。 我已经为此定义了一个函数,我想将输出添加为数据帧的一个新列(例如Text_Normalized) 然而,如果行符合某些条件(例如,如果推文不是用英语写的),我可能还需要删除该行 如何迭代数据帧,将“normalizer”函数应用于文本列,如果行不符合某些条件,则删
df = pd.read_csv('dataset_tweets.csv')
我的目标是分析tweet的情绪,在继续之前,我需要将tweet正常化。
我已经为此定义了一个函数,我想将输出添加为数据帧的一个新列(例如Text_Normalized)
然而,如果行符合某些条件(例如,如果推文不是用英语写的),我可能还需要删除该行
如何迭代数据帧,将“normalizer”函数应用于文本列,如果行不符合某些条件,则删除该行,并最终添加一个具有文本规范化的新列?假设您有一些“文本规范化”函数:
def normalises_text(text):
....
return normalised_text
您可以将此“行方式”应用于您的“文本”列,并非常简单地将其放入新列中,如下所示:
df['normalised_text'] = df.text.apply(normalises_text)
filtered_df = df[df.text_is_english]
要删除不符合某些条件的行,需要一种在数据框中定义条件的方法
假设您定义了一个确定文本是否为英语的函数,并返回布尔值:
def is_text_english(text):
....
return text_is_english
然后像前面一样将其放入一列:
df['text_is_english'] = df.text.apply(is_text_english)
然后,您可以按如下方式过滤数据帧:
df['normalised_text'] = df.text.apply(normalises_text)
filtered_df = df[df.text_is_english]
或者,假设你有一个列,列明推特的语言,你可以这样做:
filtered_df = df[df.tweet_language == 'EN']
这里的关键点是应用功能:
def normalises_text(text):
....
return normalised_text
退房。此外,您还写道,“如果列不符合某些条件,请删除该列”:您的意思是“删除行”吗?或者,如果一个条目失败,你想删除整个列吗?我的意思是,如果tweet不是用英语写的,请删除该行。如果我的答案回答了你的问题,请接受它,这样我就可以得到美味的报应:DIt完成了任务!谢谢:)