Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在迭代数据帧时添加、删除、编辑行和列_Python_Pandas_Dataframe - Fatal编程技术网

Python 在迭代数据帧时添加、删除、编辑行和列

Python 在迭代数据帧时添加、删除、编辑行和列,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个csv文件,上面有超过50000条推文,我用Pandas打开它作为数据帧 df = pd.read_csv('dataset_tweets.csv') 我的目标是分析tweet的情绪,在继续之前,我需要将tweet正常化。 我已经为此定义了一个函数,我想将输出添加为数据帧的一个新列(例如Text_Normalized) 然而,如果行符合某些条件(例如,如果推文不是用英语写的),我可能还需要删除该行 如何迭代数据帧,将“normalizer”函数应用于文本列,如果行不符合某些条件,则删

我有一个csv文件,上面有超过50000条推文,我用Pandas打开它作为数据帧

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完成了任务!谢谢:)