如何从数据帧的一列中删除标点符号?

2024-05-23 23:08:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用以下代码删除“文本”列中的标点符号:

texttweet = pd.read_csv("../input/pfizer-vaccine-tweets/vaccination_tweets.csv")

i = 0
punct = "\n\r"+string.punctuation

for tweet in texttweet['text']:
    texttweet['text'][i] = tweet.translate(str.maketrans('', '', punct))
    i += 1

texttweet

但我得到了这个信息,尽管我得到了所需的结果:

A value is trying to be set on a copy of a slice from a DataFrame

那么,不管消息是什么,都可以保留我的代码,还是应该更改一些内容


Tags: csv代码text文本readinputtweetstweet
1条回答
网友
1楼 · 发布于 2024-05-23 23:08:19

最好的方法是:

texttweet = pd.read_csv("../input/pfizer-vaccine-tweets/vaccination_tweets.csv")
punct = "\n\r"+string.punctuation
texttweet['text'] = texttweet['text'].str.translate(str.maketrans('','',punct))
texttweet

有关您遇到的问题的解释,请参见: http://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy

基本上,texttweet['text']是数据帧的一个“切片”,您正在获取该切片,并尝试在位置i为其分配一些内容

为了避免错误,可以使用textweet.loc[i,'text']=。 这是不同的,因为它直接应用于原始数据帧,而不是它的一个片段

相关问题 更多 >