在Python中使用regex排除字符串

2024-10-04 11:36:20 发布

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

我使用熊猫清理数据如下:

s3 = pd.DataFrame({'title':["intermediate" ,"Basmati/sadri" ,"temperate japonica" ,"Temperate japonica" , "Japonica" ,"Tropical japonica" ,"Aromatic (basmati/sandri type" , "indica" , "Aus/boro" , "Aus" ,"aus" ,"japonica" , "tropical japnica", "" , "Indica" , "Intermediate type" ]})

s3.title.replace(r".*[Jj]ap(o)?nica$", "japonica" ,inplace=True,regex=True)

s3.title.replace(r"Indica", "indica" ,inplace=True,regex=True)

print s3

我得到了:

                        title
0                    intermediate
1                   Basmati/sadri
2                        japonica
3                        japonica
4                        japonica
5                        japonica
6   Aromatic (basmati/sandri type
7                          indica
8                        Aus/boro
9                             Aus
10                            aus
11                       japonica
12                       japonica
13                               
14                         indica
15              Intermediate type

我想替换字符串如下:

if string not in  ['japonica', "indica"] :
    string = 'others'

但是如何作为regex执行:

s3.title.replace(r"some regex", "others" ,inplace=True,regex=True)

Tags: trues3titletypereplaceregexintermediateinplace
1条回答
网友
1楼 · 发布于 2024-10-04 11:36:20

下面的方法应该有效。它使用三个case,由or(|)运算符分隔。你知道吗

  • 为确保标题不以japonicaindica开头而需要一些其他字符而进行的反向前瞻。你知道吗
  • 一种or语句,用于确保如果标题以japonicaindica开头,则后面还有其他字符,以确认字符串不是japonicaindica单独的。你知道吗
  • 空字符串。你知道吗

    s3.title.replace(r'^(?!japonica|indica).+$|^(japonica|indica).+$|^$', "others", inplace=True, regex=True)
    

相关问题 更多 >