繁体   English   中英

python 中的条件字符串替换

[英]conditional string replace in python

我想替换数据框 col 中的所有“否”。 但是如果 col 包含任何其他字符串,例如“No error”,那么它将保持原样。

test = ["No","No Error"]
data = pd.DataFrame(test, columns=["text"])
for i in range(len(data["text"])):
    if len(data["text"][i]) == 2:
       data["text"][i] = data["text"][i]).str.replace("No", "Data not available", regex=True)
    else:
       pass
print(data)

运行代码时出现错误。 我可以通过使用 np.where 获得结果,但我还有其他几个条件替换标准,其中“np.where”不起作用。 如果我能让上述方法奏效,那就太好了。 任何帮助是极大的赞赏。

看起来你需要np.where

前任:

test = ["No","No Error"]
data = pd.DataFrame(test, columns=["text"])
data['text'] = np.where(data['text'] == 'No', "Data not available", data['text'])
# OR data.text[data.text=='No'] = "Data not available" 
print(data)

Output:

                 text
0  Data not available
1            No Error

您也可以使用Series.replace

data.text.replace({"No":"Data not available"})

0    Data not available
1              No Error
Name: text, dtype: object

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM