用于删除非字母数字字符的正则表达式无效

2024-09-30 12:19:34 发布

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

已将数据帧的列转换为列表。然后将列表中的所有元素小写。现在,我们只希望在列表的元素中保留字母表。我为此写了一个正则表达式。正则表达式不起作用

df_smer_orig = pd.read_csv('sample.csv', engine='python')
df_smer = df_smer_orig['Item'].tolist()
df_smer = [x.lower() for x in df_smer] 

for x in df_smer:
    print(x)
    regex = re.compile('[^a-zA-Z]')
    regex.sub('', x)
    print(x)

print(df_smer)

显示正则表达式不工作的代码的部分输出:

agarbathi / incense sticks
agarbathi / incense sticks
worcestershire sauce- 295ml
worcestershire sauce- 295ml

Tags: csvin元素df列表forregexprint
2条回答

是这样吗

text = re.sub(r'[^a-zA-Z]', '', text)

演示:http://tpcg.io/ZADE7f

您的代码是正确的,但您必须将结果分配回变量以获得所需的输出

df_smer_orig = pd.read_csv('sample.csv', engine='python')
df_smer = df_smer_orig['Item'].tolist()
df_smer = [x.lower() for x in df_smer] 

for x in df_smer:
    print(x)
    regex = re.compile('[^a-zA-Z]')
    x = regex.sub('', x)
    print(x)

print(df_smer)

相关问题 更多 >

    热门问题