Python/Pandas:仅当string.starts使用特定字符串时应用替换

2024-10-01 11:35:30 发布

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

使用pandas读取excel文件。 以下代码适用于一列:

data["ProtocolTCP"] = data["ProtocolTCP"].str.replace("tcp-", "tcp ")

但是,我发现一些单元格在字符串中间有值,不想改变这些值。

我怎样才能将相同的命令仅应用于那些仅以“tcp-”开头的字符串

我认为一个“lambda”命令会起作用,但很难弄清楚。或者也许有比lambda更好的选择


Tags: 文件lambda字符串代码命令pandasdataexcel
2条回答

您可以使用np.where(),它比lambda性能更好,我认为:

data["ProtocolTCP"] = np.where(data["ProtocolTCP"].startswith("tcp-"),data["ProtocolTCP"].str.replace("tcp-","tcp "),data["ProtocolTCP"])

使用列表理解的另一个选项:

data["ProtocolTCP"] = [x.replace("tcp-","tcp ") if x.startswith("tcp-") for x in data["ProtocolTCP"].values]

您可以添加^

data["ProtocolTCP"] = data["ProtocolTCP"].str.replace("^tcp-", "tcp ")

相关问题 更多 >