如何替换熊猫中IP地址的最后一个八位位组

时间:2018-07-25 20:28:51

标签: regex pandas ip

我有这个简单的数据框

df = pd.DataFrame({'myip' : ['192.168.0.1']})

df
Out[12]: 
          myip
0  192.168.0.1

我想使用str.replace0替换ip的最后一个八位字节(这样它将显示为192.168.0.0

我(认为我)知道如何匹配正则表达式中的最后一个八位位组:\\.[0-9]*$,但是我没有得到pandas语法来将其替换为零。

有什么想法吗?熊猫23在这里。谢谢!

1 个答案:

答案 0 :(得分:1)

您可以使用pandas.Series.str.replace

>>> df['myip'] = df['myip'].str.replace(r'\.\d+$', '.0')
>>> df
          myip
0  192.168.0.0
>>> 

在这里,\.匹配一个点,\d+匹配一个或多个数字,并且$锚点在字符串的末尾声明位置。

.0是简单的字符串替换模式,点号后跟0字符。

请参见regex demo