用逗号,反向逗号和

时间:2020-06-26 12:10:06

标签: python pandas

我有一个数据帧序列,它具有逗号,倒置逗号等字符,因此我尝试如下替换它们,

train['content']=train['content'].replace('…','')
train['content']=train['content'].replace('”','')
train['content']=train['content'].replace('“','')
train['content']=train['content'].replace('’','')

但是,即使替换了它们,我仍然可以得到它们的字符。内容没有变化。 commasinverted commas...仍然存在。

我的火车数据框中有30,000行。我希望替换所有30,000行中的上述字符

编辑: 火车

content
[sure, tune, …, watch, donald, trump, “,”, late, ’ , night]
[abc, xyz, “,”,late, ’, night]

基本上内容列是一个列表

3 个答案:

答案 0 :(得分:1)

使用正则表达式执行。它会解决您的问题

import re
train['content'] = train['content'].map(lambda x: re.sub(r'\W+', '', x))

尝试对数据框的所有列进行尝试

train = train.replace(r'\W+', '', regex=True)

答案 1 :(得分:1)

您可以将其转换为列表,他们使用列表理解:

train['content'] = [i for a in ['…','”','“','’'] for i in train['content'].tolist() if a not in i]

更新:

train['content'] = [i if a not in i else None for a in ['…','”','“','’'] for i in train['content'].tolist()]

或者:

train['content'] = pd.Series([i for a in ['…','”','“','’'] for i in train['content'].tolist() if a not in i])

答案 2 :(得分:0)

要使用数据框中的文本数据,通常需要应用其他访问器“ str”。 在这种情况下,您的命令应如下所示:

train['content']=train['content'].str.replace('…','')
train['content']=train['content'].str.replace('”','')
train['content']=train['content'].str.replace('“','')
train['content']=train['content'].str.replace('’','')

下面有一个小例子,它起作用了:

import pandas as pd
df = pd.DataFrame({'txt':['dfghn,.4567','.,.,fw,.,r4.34,']})
q = df.txt.str.replace('.','')
q
Out[150]: 
0     dfghn,4567
1    ,,fw,,r434,
Name: txt, dtype: object