【问题标题】:change string in a big list with another string用另一个字符串更改大列表中的字符串
【发布时间】:2020-03-13 13:36:00
【问题描述】:

我有一些列表为 t_pre_eks_tfberita

我想将包含“BUKAN HOAX (1)”的“Label”字符串替换为“BUKAN HOAX”,并将包含“HOAX (1)”的字符串更改为“HOAX”。 但是当我使用此代码时发现错误。

for i in range (len(t_pre_eks_tfberita)):
if(t_pre_eks_tfberita[i][0]=="Label"):
    j=1
    while j in range (len(t_pre_eks_tfberita[i])):
        cek = re.search("BUKAN",t_pre_eks_tfberita[i][j])

        if(cek):
            t_pre_eks_tfberita[i][j] = "BUKANHOAX"
        else:
            t_pre_eks_tfberita[i][j] = "HOAX"
        j+=1

dfr_eks_tfberita = pd.DataFrame(list(map(list, zip(*t_pre_eks_tfberita))))
new_header = dfr_eks_tfberita.iloc[0] #grab the first row for the header
dfr_eks_tfberita = dfr_eks_tfberita[1:] #take the data less the header row
dfr_eks_tfberita.columns = new_header

for i in range(len(new_header)):
    if new_header[i] != 'Label' and new_header[i] != 'Isi_Dokumen':
        dfr_eks_tfberita[new_header[i]] = dfr_eks_tfberita[new_header[i]].astype('int')

dfr_eks_tfberita

当我运行它时,我发现了这样的错误。

这个问题有什么解决办法吗?

【问题讨论】:

  • cek = re.search("BUKAN", str(t_pre_eks_tfberita[i][j]))?实际上,您可以将in 与字符串一起使用,如果您想检查另一个字符串中是否存在固定子字符串,则无需使用re
  • @WiktorStribiżew 我试过 cek = re.search("BUKAN", str(t_pre_eks_tfberita[i][j])) 但运行需要很长时间可以吗?我想将所有号码的任何“BUKAN HOAX (1)...(500)”更改为“BUKAN HOAX”,并将所有“HOAX (1)....(500)”更改为“HOAX” ,我想从该字符串中删除所有数字

标签: python regex string list replace


【解决方案1】:

IIUC,试试pandas.Series.str.replacestrip

import pandas as pd

s = pd.Series(['HOAX', 'HOAX (1)', 'BUKAN HOAX', 'BUKAN HOAX (1000)'])
# Sample input
new_s = s.str.replace('\(\d+\)', '').str.strip()
print(new_s)

输出:

0          HOAX
1          HOAX
2    BUKAN HOAX
3    BUKAN HOAX
dtype: object

【讨论】:

    【解决方案2】:

    在这里使用 re 是多余的。 您需要遍历 df 值,然后检查是“BUKAN HOAX (1)”还是“HOAX (1)”。

    if "HOAX (1)" in t_pre_eks_tfberita[i][j]:
        dosomething()
    

    但您实际上可以使用 pandas 自己的函数(如 iterrows())在 DF 中执行此操作。

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 2012-11-23
      • 1970-01-01
      • 2013-08-11
      相关资源
      最近更新 更多